MatLab Sortrows if语句为true
我想按一个简单的条件对表进行排序。 如果组中5个向量中有3个大于0,则将该行放在表的顶部 我用sortrow试过,但我不能实现这个条件 我想解决的具体案例是一个由11列组成的表。第一列分别显示与行中的值关联的名称。其余的列被分成两组,例如A1:A5和B1:B5。如果在A组中,5个单元格中的3个大于0,则将该行放在表的顶部。逻辑上,第一行应该是所有值都大于0的行 我尝试了很多方法,包括sortrows和if语句的组合,但都不起作用MatLab Sortrows if语句为true,matlab,if-statement,Matlab,If Statement,我想按一个简单的条件对表进行排序。 如果组中5个向量中有3个大于0,则将该行放在表的顶部 我用sortrow试过,但我不能实现这个条件 我想解决的具体案例是一个由11列组成的表。第一列分别显示与行中的值关联的名称。其余的列被分成两组,例如A1:A5和B1:B5。如果在A组中,5个单元格中的3个大于0,则将该行放在表的顶部。逻辑上,第一行应该是所有值都大于0的行 我尝试了很多方法,包括sortrows和if语句的组合,但都不起作用 也许你有个主意。非常感谢。如果我理解正确,请确保行位于顶部,第2-
也许你有个主意。非常感谢。如果我理解正确,请确保行位于顶部,第2-6列中的大多数值为正值 下面是一个使用排序的解决方案:
请您添加代码,并指出问题所在。
tbl = ... %# your table
numPositive = sum(tbl(:,2:6)>0,2);
[~,sortIdx] = sort(numPositive,'descend');
sortedTable = tbl(sortIdx,:);