2014-02-06 1 views
-1

마다 루프 반복을 MATLAB에 크기를 변경 나타납니다이 오류가 나는 음식물을 실행할 때, 어떻게변수 'CC'는 내가 matlab에와 tarjan 프로그램이 코드 소스가

function [C, S, idx, index, index_accessible] = strongconnect(C, G, v, S, idx, index,  index_accessible) 
index(v) = idx; 
index_accessible(v) = idx; 
idx = idx+1; 
S = push(S,v); %ajouter le sommet courant à la pile 

% Liste les sommets adjacents au sommet courant 
n = voisin(G,v); 

% Parcours récursif 
for i = 1:length(n) 
    if(index(n(i)) == 0) 
     [C, S, idx, index, index_accessible] = strongconnect(C, G, n(i), S, idx, index, index_accessible); 
     index_accessible(v) = min(index_accessible(v), index_accessible(n(i))); 
    elseif (~isempty(find(S == n(i), 1))) 
     index_accessible(v) = min(index_accessible(v), index(n(i))); 
    end 
end 

% Le sommet est une racine, on calcule la composante fortement connexe associée 
if(index_accessible(v) == index(v)) 
    cc = []; %composante fortement connexe issue du sommet 
    if(~isempty(S)) 
     [tmp, S] = pop(S); 
     cc = [cc tmp]; 
    end 
    while(~isempty(S) && tmp ~= v) 
     [tmp, S] = pop(S); 
     ***cc*** = [cc tmp]; 
    end 
    if(~isempty(cc)) 
     % Les composantes connexes n'ont pas toutes 
     % la même longueur. On complète donc la ligne 
     % avec des 0. 
     C = [C ; cc zeros(1,size(G,1) - length(cc))]; 
    end 
end 
end 

을 고칠 수 표시 별 사이에 문제가 있습니다.

+2

경고입니다. 오류가 아닙니다. 참조를 미리 할당하면 코드가 더 빨리 실행됩니다. 'cc = []'줄에서 cc의 크기를 안다면'cc = nan (5,1)'과 같이 cc를 초기화 할 수 있습니다. 이렇게하면 나중에 채워지는 크기 5의 배열이 생성됩니다. – Daniel

+0

저는 아직 matlab 초보자입니다. matlab에 Tarjan 알고리즘의 소스 코드가 필요합니다.이 링크에서 코드를 찾으십시오. [http://lotin.univ-tln.fr/graphes/graphtook/] tarjan.html), 나는 코드를 실행할 수 없었고, 문제는 cc와 같다고 생각 했으므로 경고이므로 주 오류는 아닙니다. 이 코드 줄을 어떻게 실행할 수 있는지, 명령 줄과 결과를 입력 한 내용은 무엇인지 말해 줄 수 있습니까? 매우 감사합니다. – user3281660

+0

질문을 롤백했습니다. 관련 정보를 모두 삭제 했으므로 편집하십시오. 질문. 이미 대답이 있더라도 질문이 분명하게 남아 있는지 확인하십시오. –

답변

0

코드에 오류가 없습니다. 입력이 그래프 행렬이고, I는 임의의 생성을 사용했을

C=tarjan(G); 

C의 각 행은 하나 개의 구성 요소를 포함

G=randi(10,20,20)==1; 

이제 함수를 호출한다.

질문에 답변이되지 않는 경우 오류 설명 및 입력 데이터를 포함하여 질문을 업데이트하십시오.

+0

예 Daniel, adjacency 행렬에 대한이 작은 테스트를 만들었고이 행렬에 문제가 있다는 것은 내가 강하게 연결된 구성 요소를 결정하는 방법을 이해하지 못한다는 것입니다. – user3281660

+0

C의 각 행에는 하나의 인덱스가 들어 있습니다 연결된 구성 요소. – Daniel

+0

현재 문제가있는 게시물을 업데이트하십시오. – user3281660

관련 문제