2016-07-19 18 views
3

folgenden vorausgesetzt, ich habe ein Array:Befund Elemente in der Anordnung, die einen bestimmten Wert in Matlab

[1 5 1 1 3 1 1 1 7] 

und ich möchte den Index jedes Elements zu finden, die eine ‚1‘ folgt, also würde ich 2 erhalten , 5, 9. Hat Matlab etwas zu tun? Danke für deine Hilfe, Nadine

+1

Wenn es zwischen denen, wie im Beispiel immer nur ein Element ist, dass Sie gegeben haben, können Sie einfach: 'B = finden (array ~ = 1) ' –

Antwort

6

Ich schlage vor, die folgende Einzeiler:

a = [1 5 1 1 3 1 1 1 7]; 
idx = find(a(1:end-1) == 1 & a(2:end) ~= 1) + 1 

kehrt:

idx = 

    2  5  9 

Hoffnung, die

3

Hier ist eine andere Art und Weise hilft. Sei x der Eingabevektor.

result = find(diff(x==1)<0)+1; 

Beispiel:

>> x = [1 5 1 1 3 1 1 1 7]; 
>> result = find(diff(x==1)<0)+1 
result = 
    2  5  9