在MATLAB中比较文件

时间:2012-11-15 16:08:59

标签: matlab diff

  

可能重复:
  Compare files with MATLAB

我想使用MATLAB比较2个txt文件,如果文件不相等则打印diff

我发现visdiff是图形工具,但我想知道是否有一些MATLAB函数进行这样的比较?

如果文件之间存在差异,则仅打印+或 - 文件

感谢

1 个答案:

答案 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