비교

2012-11-19 5 views
0

내가입니다 그렇지 않으면 동일 파일을 확인 출력을 얻을 차이를 줄이 개 TXT 파일을 비교하기 위해 노력하고있어 파일을 다음과 같이 내가 노력하고있어비교

(A DIFF 라인 X 있다는 것을 말한다) :

fid1 = fopen(file_1, 'r'); 
fid2 = fopen(file_2, 'r'); 
lines1 = textscan(fid1,'%s','delimiter','\n'); 
lines2 = textscan(fid2,'%s','delimiter','\n'); 
lines1 = lines1{1}; 
lines2 = lines2{1}; 
fclose(fid1); 
fclose(fid2); 
tf = isequal(lines1,lines2); % this gives 0 or 1 

diff가 현지화되고 파일이 다른 줄을 지정하거나 차이가있는 내용을 인쇄하려면 값이 0 일 때 (파일이 다릅니다)를 원합니다.

+1

왜 gnu diff 유틸리티를 사용하지 않으시겠습니까? https://www.gnu.org/software/diffutils/ – bdecaf

+0

@bdecaf : diff는 Windows에서 작동합니까? – lola

답변

0

기본적으로 전체 셀 배열이 아닌 두 개의 셀 배열의 각 요소를 비교하려고합니다. 대부분의 언어로 루프를 사용하여 수행 할 수 있지만 물론 MATLAB에는 루프를 피할 수있는 여러 가지 방법이 있습니다.

cellfun(@isequal,lines1,lines2)

그런 다음, find이를 찾는 데 유용하다 (I 두 셀 어레이 크기가 같지 경우, 당신은 하나 이상을 단축해야하는 부분을 떠났다.) 여기서, cellfun입니다 벡터에서 특정 값의 첫 번째 (또는 전체) 발생.

+0

파일이 다를 때 cellfun (@ isequal, lines1, lines2)은 크기가 같지 않아서 오류를 반환합니다. – lola

+0

예, "두 부분의 셀 배열이 같지 않으면 부분을 생략했습니다. 크기를 줄이면 더 긴 것을 단축해야합니다. " –

+0

무엇을 의미합니까? – lola