文件比较

时间:2012-11-19 08:30:27

标签: file matlab

我正在尝试比较2个txt文件以检查文件是否等于其他,得到输出并给出差异(比如说有一个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 

我想当值为0(文件不同)时,本地化差异并给出文件不同的行或打印差异的内容。

1 个答案:

答案 0 :(得分:0)

您基本上想要比较您拥有的两个单元格数组的每个元素,而不是整个单元格数组。你可以用大多数语言中的循环来做到这一点,但当然MATLAB有很多方法可以避免循环。这是cellfun

cellfun(@isequal,lines1,lines2)

(我遗漏了部分,如果两个单元格数组的大小不等,则必须缩短较长的部分。)然后,find对于查找第一个(或全部)事件很有用(s )任何向量中的某个值。