0

我正在尝试比较 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(文件不同)时本地化差异并给出文件不同的行或打印差异的内容。

4

1 回答 1

0

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

cellfun(@isequal,lines1,lines2)

(我省略了如果两个单元格数组的大小不相等,则必须缩短较长的那个部分。)然后,find对于在任何向量中查找某个值的第一次(或所有)出现很有用.

于 2012-11-19T08:40:15.333 回答