2016-03-29 30 views
1

繰り返し操作を使わずに2つのベクトルが交差するときの位置を決定したい。例Matlab、2つのベクトルの交差

A = [ 2 2 3 4 5] 
B = [ 2 3 3 8 5] 

ため、出力はあなたが単に論理的なマトリックスとfindを使用することができます

R = [1 3 5]. 
+0

また、 'R = intersect(A、B)'を使用することもできます。 – GameOfThrows

+0

@GameOfThrowsこれはAとBの両方に共通のデータを返しません。ここで '2 3 5' – serial

+1

あなたは' ia'と 'ib'を使って' A'と 'B'の位置を与える' [C、ia、ib] = intersect(A、B) 'を使うことができます –

答えて

4

次のようになります。

A = [2 2 3 4 5]; 
B = [2 3 3 8 5]; 

R = find(A == B) 

    1 3 5 

表現A == Bが要素である論理行列を作成します。 true(1)Aの要素がBとの要素に等しい場合210(0)でなければなりません。次に、findは、値がtrueであるこの論理マトリックス内の位置を識別する。