我想使用MATLAB比较2个txt文件,如果文件不相等则打印diff
我发现visdiff是图形工具,但我想知道是否有一些MATLAB函数进行这样的比较?
如果文件之间存在差异,则仅打印+或 - 文件
感谢
答案 0 :(得分:0)
在linux / unix中,您可以在matlab中使用diff
使用bash system()
。 (related article)
它是这样的:
[content_differs, printout] = system('diff --side-by-side --left-column file1 file2');
如果file1和file2具有相同的内容,则 content_differs
为0,printout
为字符串。您可以逐行访问其数据(您可以在matlab中使用split或管道其他命令)。
“
可以根据中间的字符来解析差异。正如我所观察到的,“(”表示由于某种原因没有区别。“<”,“>”和“|”指的是添加和更改的行。
(您有很多选项可以使用差异来显示常见内容 - check out this link for details)
更新:
文件的简单解析脚本,显示所有常用部分。
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