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

Mi piacerebbe eseguire il ciclo e creare una nuova matrice con solo i valori in cui la colonna tre corrisponde a "Massimo".Matlab - Seleziona riga specifica in base alle condizioni

Quando si cerca:

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

ottengo:

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

Tutte le idee? Grazie!

risposta

9

i punti di matrice come presentato non è una matrice MATLAB valida a meno che Massimo sia un numero. Se questo è il caso, allora:

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

vi darà gli indici corretti.

Modifica

per ottenere una nuova matrice con i valori di "massima" just

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

'idx = 3' è ciò che ottengo in cambio. Quali sono esattamente questi due valori? Ho provato a capirlo, ma non posso. Inoltre, come posso convertire i valori che corrispondono a "Massimo" nella terza colonna in una nuova matrice? –

+0

vedi risposta modificata – bla

Problemi correlati