2012-10-13 22 views
5
points = [ 
    -9.9043877608991468201413092380493, 426.34796945271797204125533010993, Maximum 
    -2.9714737944057521874892206269196, 422.13223302035451265143272598599, Minimum 
    9.3758615553048990076305298649689, 441.87005169359418197397861057075, Maximum 
] 

Ich möchte Schleife durch und erstellen Sie eine neue Matrix mit nur die Werte, wo Spalte drei "Maximum" übereinstimmt.Matlab - Wählen Sie bestimmte Zeile basierend auf Bedingung

Beim Versuch:

idx = (points(:,3)=='Maximum') 

ich:

Maximum == Maximum 
Minimum == Maximum 
Maximum == Maximum 

Irgendwelche Ideen? Vielen Dank!

Antwort

9

Die Matrixpunkte wie dargestellt sind keine gültige Matlab-Matrix, es sei denn Maximum ist eine Zahl. Wenn das der Fall ist, dann:

idx=find(points(:,3)== Maximum ) 

geben Ihnen die richtigen Indizes.

bearbeiten

eine neue Matrix mit den Werten von "Maximum" nur

new_matrix=points(idx,1:end-1) 
+0

'idx = 3' ist, was ich im Gegenzug zu erhalten. Was genau sind diese beiden Werte? Ich habe versucht, es zu verstehen, aber ich kann es nicht. Wie kann ich die Werte, die in der 3. Spalte "Maximum" entsprechen, in eine neue Matrix umwandeln? –

+0

siehe bearbeitete Antwort – bla

Verwandte Themen