0

可能重复:
使用 MATLAB 比较文件

我想使用 MATLAB 比较 2 个 txt 文件并在文件不相等时打印差异

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

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

谢谢

4

1 回答 1

0

在 linux/unix 中,您可以使用 bash diffsystem()在 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
于 2012-11-27T01:13:01.103 回答