可能重复:
使用 MATLAB 比较文件
我想使用 MATLAB 比较 2 个 txt 文件并在文件不相等时打印差异
我发现 visdiff 是图形工具,但我想知道是否有一些 MATLAB 函数进行这样的比较?
如果文件之间存在差异,则仅打印 + 或 - 文件
谢谢
可能重复:
使用 MATLAB 比较文件
我想使用 MATLAB 比较 2 个 txt 文件并在文件不相等时打印差异
我发现 visdiff 是图形工具,但我想知道是否有一些 MATLAB 函数进行这样的比较?
如果文件之间存在差异,则仅打印 + 或 - 文件
谢谢
在 linux/unix 中,您可以使用 bash diff
,system()
在 matlab 中使用。(相关文章)
它是这样的:
[content_differs, printout] = system('diff --side-by-side --left-column file1 file2');
content_differs
如果 file1 和 file2 具有相同的内容,则为 0,printout
是一个字符串。您可以逐行访问其数据(您可以在 matlab 中使用 split 或管道其他命令)。' 可以根据中间的字符来解析差异。正如我所观察到的,“(”出于某种原因表示没有区别。“<”,“>”和“|”指的是添加和更改的行。
(您也有很多 diff 选项来显示常见内容 -查看此链接了解详细信息)
更新:
一个简单的文件解析脚本,显示所有常见部分。
file1 = 'your_file.m'
file2 = 'your_other_file.m';
[is_diff,output] = system(['diff --side-by-side --left-column ',file1,' ',file2]);
lines = regexp(output, '\n', 'split');
for i=1:(length(lines)-1)
line = lines{i};
if line(end) == '(' % common part
disp( line(1:(end-1)) );
end
end