MatLab Sortrows if statement为true

时间:2015-04-25 14:17:56

标签: matlab if-statement

我想通过一个简单的条件对表进行排序。 如果组中的5个向量中的3个> 0,则将该行放在表的顶部。

我用sortrow尝试了但是我无法实现这个条件。

我想解决的具体案例是一个由11列组成的表。第一列分别显示与行中的值相关联的名称。其余列分为2组,例如A1:A5和B1:B5。如果在组A中,5个单元中的3个单元> 0,则将该行放在表的顶部。第一行在逻辑上应该是行,每个值都是> 0。

我尝试过很多东西,包括sortrows和if语句的组合,但它没有用。

也许你有个主意。非常感谢你。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要确保行位于顶部,而第2-6列中的大多数值都是正值。

以下是使用sort

的解决方案
tbl = ... %# your table
numPositive = sum(tbl(:,2:6)>0,2);

[~,sortIdx] = sort(numPositive,'descend');

sortedTable = tbl(sortIdx,:);