Matlab - 根据条件选择特定行

时间:2012-10-13 02:39:22

标签: matlab matrix indexing

points = [  
    -9.9043877608991468201413092380493, 426.34796945271797204125533010993, Maximum  
    -2.9714737944057521874892206269196, 422.13223302035451265143272598599, Minimum
    9.3758615553048990076305298649689, 441.87005169359418197397861057075, Maximum
]

我想循环并创建一个新矩阵,其中只有第三列与“最大值”相匹配的值。

尝试时:

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

我明白了:

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

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:9)

所呈现的矩阵点不是有效的matlab矩阵,除非Maximum是一个数字。 如果是这样的话,那么:

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

会给你正确的指数。

修改

获取值为“maximum”的新矩阵

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