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

Me gustaría hacer un bucle y crear una nueva matriz con solo los valores donde la columna tres coincide con 'Máxima'.Matlab - Seleccionar fila específica según la condición

Al intentar:

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

me sale:

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

¿Alguna idea? ¡Gracias!

Respuesta

9

los puntos de matriz que se presentan no son una matriz de matlab válida a menos que Máximo sea un número. Si ese es el caso, entonces:

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

le dará los índices adecuados.

Editar

para obtener una nueva matriz con los valores de la "máxima" simplemente

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

'idx = 3' es lo que recibo a cambio. ¿Cuáles son exactamente esos dos valores? Intenté darle sentido, pero no puedo. Además, ¿cómo puedo convertir los valores que coinciden con "Máximo" en la tercera columna en una nueva matriz? –

+0

ver respuesta editada – bla

Cuestiones relacionadas