我想通过一个简单的条件对表进行排序。 如果组中的5个向量中的3个> 0,则将该行放在表的顶部。
我用sortrow尝试了但是我无法实现这个条件。
我想解决的具体案例是一个由11列组成的表。第一列分别显示与行中的值相关联的名称。其余列分为2组,例如A1:A5和B1:B5。如果在组A中,5个单元中的3个单元> 0,则将该行放在表的顶部。第一行在逻辑上应该是行,每个值都是> 0。
我尝试过很多东西,包括sortrows和if语句的组合,但它没有用。
也许你有个主意。非常感谢你。
答案 0 :(得分:0)
如果我理解正确,您需要确保行位于顶部,而第2-6列中的大多数值都是正值。
以下是使用sort
:
tbl = ... %# your table
numPositive = sum(tbl(:,2:6)>0,2);
[~,sortIdx] = sort(numPositive,'descend');
sortedTable = tbl(sortIdx,:);