2017-11-30 4 views
0

私は、サイズが異なる2つの配列、配列Aと配列Bを持っています。setdiffのやり方はmatlabで繰り返します

BにないデータのインデックスをMatlabを使用してに戻したいとします。

つまり、matlabではsetdiffに似ていますが、繰り返しが必要な関数が必要です。

idx = ~ismember(A,B,'rows'); 
res = A(idx,:); 

と第二のように、あなたもインデックスをしたい場合:AとBを(この例では、行方向の差分を実行したい二つの行列/行ベクトル)が与えられ

+0

繰り返しでセットディフの結果を表示できますか? –

答えて

2

setdiffの出力引数:

res_idx = find(idx); 

ismemberは値の比較を使用しています。 AとBに精度の高い浮動小数点数が含まれている場合は、処理を進める前に少し丸めてください。

参考:https://mathworks.com/help/matlab/ref/ismember.html

+0

['ismembertol'](https://www.mathworks.com/help/matlab/ref/ismembertol.html)は、公差を伴う設定操作を可能にします。 – excaza

関連する問題