B も行列形式で配置します。次に例を示します。
B=[6 9; 32 4];
これを行うために使用できる MATLAB コードを次に示します。
k=0;
output=[];
for n=1:5
for m=1:2
if (sum(A(n,1:2)==B(m,:)) == 2)
k = k +1;
output(k) = n;
end
end
end
あなたの結果は にありoutputます。
編集:
行の説明を追加しています(sum(A(n,1:2)==B(m,:)) == 2)。一つ一つ見ていきましょう。A(n, 1:2)の n 番目の行の最初の 2 列である 1x2 ベクトルを返しますA。B(m,:)B には 2 つの列しかないため、 も 1x2 ベクトルです。[6 9]では、 の最後の行からAと[6 9]の最初の行から があるとしましょうB。
[6 9] == [6 9]コマンドラインで試してください。結果は論理ベクトルです: [1 1]. その理由は、==要素ごとにベクトルを比較するためです。最初の 1 は 6 が 6 に等しいからで、2 番目は 9 が等しいからです。最初の要素が異なるため、試し[6 9] == [7 9]てみると取得できます。[0 1]
したがって、両方の要素が同じかどうかを評価するには、==演算子から得られるベクトルの合計が 2 に等しいと予想します。1 に等しい場合、1 つの要素だけが同じでした。ベクトル全体が等しいと言うには、2 である必要があります (ベクトルには 2 つの要素しかないため 2)。だからsum([6 9] == [6 9])与えます2がsum([7 9] == [6 9])、与えるだけ1です。
したがって、行が等しいかどうかをテストする条件は次のとおりです。if (sum(A(n,1:2)==B(m,:)) == 2)