2016-08-09 7 views
1

の最初のインデックス検索:、私はこのケースではSO 2、3または5のいずれかが最初に出現する位置のインデックスを検索したい私は数字のベクトルを持っている数字の最初のocurrence

[0 0 0 1 1 1 1 3 2 2 2 3 3 3 3 5 5 5 5] 

をインデックスは8になります。

私は1を0に変換し、最初にゼロ以外の値を見つけることを考えましたが、それは非効率的です。それを行う効率的な方法はありますか?ありがとう!

答えて

1

答えが見つかりました。

x = [0 0 0 1 1 1 1 3 2 2 2 3 3 3 3 5 5 5 5]; 
find(x==2 | x==3 | x==5, 1) 
+5

もっと一般的にするには、 'v = [2 3 5];を使用します。 find(ismember(x、v)、1) ' –

+2

@LuisMendoこれは答えだったはずです! – rayryeng

+1

@Tylerは 'max'の2番目の出力の使用を検討します。私はそれが計算上より効率的になるだろうと思う。 – rayryeng

関連する問題