2016-05-12 6 views
0

Gibt es eine Möglichkeit, den letzten Eintrag eines Matlab-Vektors, der nicht Null ist, zu lesen? Ich habe eine Matrix 1x20 und schreibe Werte darauf abhängig von den Iterationen einer while-Schleife darin. Ich habe versucht, eine Matrix der Größe des Zählers der while-Schleife zu erstellen, aber das funktioniert nicht, da der Null-Befehl es in jeder Schleife überschreibt.Matlab lesen letzten Eintrag des Vektors ungleich Null

Vielen Dank für alle Vorschläge

+0

Vielleicht ein paar einfache Beispielcode schreiben, die zeigt, was falsch läuft – Steve

Antwort

2

Die find function sucht nach Nicht-Null-Einträgen in einem Array, und es dauert Optionen, die Sie „nur einen, auf der Suche vom Ende“ sagen lassen.

+0

Hinweis: Erträge Indizes finden, keine Zahlen, also wenn Sie 'tun idx = finden (myvector, 1,‚letzte‘);' Sie‘ Ich brauche 'lastnonzeronumber = myvector (idx);' wenn du nach der Nummer suchst. –

+1

@HughNolan Oder '[~, ~, val] = finde (meinVektor, 1, 'last')' ;-) –

1

Gibt es eine Möglichkeit, den letzten Eintrag eines Matlab-Vektors zu lesen, der nicht null ist?

a = [3 5 2 1 0 2 2 0 0 1 2 3 6 0 0 0 0] 
ind = find(a ~= 0, 1, 'last') 
val = a(ind) 
Verwandte Themen