重複の可能性:
ファイルを MATLAB と比較する
MATLAB を使用して 2 つの txt ファイルを比較し、ファイルが等しくない場合は差分を出力したいと考えています。
グラフィカルツールである visdiff を見つけましたが、そのような比較を行う MATLAB 関数があるかどうか知りたいですか?
ファイル間に差分がある場合は、+ または - ファイルのみを出力します
ありがとう
重複の可能性:
ファイルを MATLAB と比較する
MATLAB を使用して 2 つの txt ファイルを比較し、ファイルが等しくない場合は差分を出力したいと考えています。
グラフィカルツールである visdiff を見つけましたが、そのような比較を行う MATLAB 関数があるかどうか知りたいですか?
ファイル間に差分がある場合は、+ または - ファイルのみを出力します
ありがとう
linux / unixでは、matlabdiff
で使用してbashを使用できます。(関連記事)system()
こんなふうになります:
[content_differs, printout] = system('diff --side-by-side --left-column file1 file2');
content_differs
file1と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