7

2つの配列があります。A=[1;2; 4; 7; 10; 20]; B = [1; 4; 8];

ここで、BにないAの要素を見つけたいと思います。[2; 7;10;20]。Aの要素[2;7;10;20]のインデックスであるインデックスが必要です。これをmatlabに実装するにはどうすればよいですか。私はループとすべてを使うことができます。しかし、それは私が望んでいることではありません。エレガントなソリューションが欲しいです。提案?

4

3 に答える 3

9

関数を使用してそれを行うことができますismember

A = [1;2;4;7;10;20]; 
B = [1;4;8];
ismem = ismember(A,B);

あなたに与える

[1 0 1 0 0 0]'

本当にインデックスが必要な場合は、を使用できますfind

find(ismem==0)

念のため、次のようにいつでも論理インデックスを使用できます。

A(~ismem)

あなたに与える

[2 7 10 20]'
于 2012-11-22T15:48:26.797 に答える
4

BにないAの要素が必要な場合は、setdiffを使用できます。

値ではなく要素のインデックスが必要な場合は、ismemberを使用して、結果を否定できます。

于 2012-11-22T15:47:00.083 に答える
3

チェックアウトsetxor

[C、ia、ib] = setxor(A、B)

これがMathworksページです。iaAにはあるがBにはないもののインデックスが必要になります。

于 2012-11-22T15:48:47.610 に答える