0

この質問は、Matlab 関数ismemberまたは代替方法に関するものです。

Y の複数の出現を含むベクトル X があります。Y が表示される行を知りたいのですが、それらすべてが 1 つだけではありません。このベクトルは私のコードでははるかに大きくなるため、効率/時間の節約に関する推奨事項は非常に高く評価されます。

私のコードは次のとおりです。

X = [1 1 0 1 1 0 1 0 1]'

Y=0

[~,indx]=ismember(Y,X,'rows')

私が得る出力は次のとおりです。

指標 =

 8

理想的には、出力が次のようなものになることを望みます:

指標 =

[3 6 8]

このソリューションを取得することは可能ですか、それとも関数ismemberのようなものを見なければなりませんか?find

いつもご利用いただき、誠にありがとうございます。

4

1 に答える 1

0

一致するすべての要素のインデックスを取得するには、find関数を使用できます。これはまさにあなたが説明したことを行います。

Shai もコメントで述べたように、論理インデックス作成は問題に対する別の潜在的な解決策であり、後で何をするかによってははるかに効率的かもしれません。両方の方法に慣れておくことをお勧めします。

于 2013-07-03T11:18:10.433 に答える