8

'=='演算子と'find()'関数を使用して、ベクトル'data'内の値(45)の位置を探すことができます。

data = [ 71 65 23 45 34 12 21 34 52 ];
value = 45;

find (data == value)
ans =  4

ループを使用せずにいくつかの値に対して同じことを行う方法はありますか?つまり、1回の呼び出しで[457]を取得したいと思います。

values = [ 45 34 21 ];
find (data == values)
error: mx_el_eq: nonconformant arguments (op1 is 1x9, op2 is 1x3)
error: evaluating argument list element number 1
error: evaluating argument list element number 1
4

1 に答える 1

14

ismember関数を試してください。

data = [ 71 65 23 45 34 12 21 34 52 ];
values = [ 45 34 21 ];

find(ismember(data, values))

与える:

ans =

 4     5     7     8
于 2011-03-03T16:24:09.033 に答える