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

我想循环遍历并创建一个新的矩阵,其中第三列与“最大值”匹配。Matlab - 根据条件选择特定行

当尝试:

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

我得到:

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

任何想法?谢谢!

回答

9

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

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

会给你正确的指数。

编辑

获得新的矩阵的 “最大” 值只是

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

'IDX = 3' 是我得到的回报。这两个值究竟是什么?我尝试了解它,但我不能。另外,如何将第3列中的“最大值”匹配的值转换为新的矩阵? –

+0

见编辑答案 – bla