0

重複の可能性:
ファイルを MATLAB と比較する

MATLAB を使用して 2 つの txt ファイルを比較し、ファイルが等しくない場合は差分を出力したいと考えています。

グラフィカルツールである visdiff を見つけましたが、そのような比較を行う MATLAB 関数があるかどうか知りたいですか?

ファイル間に差分がある場合は、+ または - ファイルのみを出力します

ありがとう

4

1 に答える 1

0

linux / unixでは、matlabdiffで使用してbashを使用できます。(関連記事)system()

こんなふうになります:

[content_differs, printout] = system('diff --side-by-side --left-column file1 file2');

content_differsfile1とfile2の内容が同じ場合は0printoutで、文字列です。データに1行ずつアクセスできます(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 に答える