3

単純に見える問題がありますが、何かが欠けている可能性があります。私が持っているとしましょう: vector = [10:1:19];. 私は別のベクトルを持っていwant = [11 16 19];ます.11、16、および19がベクトルで発生するインデックスであるコマンドが返される方法が欲しいだけです。つまり、2、7、10 を返したいのですが、どのコマンドでこれを行うことができますか? が使えないfind(寸法が合わないため)ので、他に方法はありますか?

実際にはvectorandの長さはwant長くなるため、for ループでは実行できません。

4

2 に答える 2

1

または、 を使用することもできますismember

vectorpresentの要素を取得するにはwant:

vector(ismember(vector,want))
ans =
     11     16    19

インデックスを取得するには:

find(ismember(vector,want))
ans =
     2     7    10

あるいは単に:

[tf, loc] = ismember(vector,want)
tf =
     0     1     0     0     0     0     1     0     0     1
loc =
     0     1     0     0     0     0     2     0     0     3

ここで、 tf は にvector存在するかどうかの各要素wantloc示し、 に対応するインデックスを示しますwant

于 2013-06-13T01:20:55.923 に答える