gpt4 book ai didi

matlab - 根据非零行数对矩阵进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:38 25 4
gpt4 key购买 nike

我想根据行中非零元素的数量对矩阵行进行排序考虑以下示例,其中

 a = [0 0 2;2 1 4;2 5 0]

但应该是

a =

2 1 4
2 5 0
0 0 2

最后,这是我想出的

 for i = 1:3
vec(i) = sum(a(i,:)==0);%to get number of nonzero elementsin each row
end
a = [a vec.']
a = sortrows(a,4) % sorting according to number of nonzero elements
a = [a(:,1:3)]

上面的代码可以工作,但是有人有更优雅的方法吗?

最佳答案

您可以使用以下方法:

[~,I] = sort(sum(a~=0,2), 'descend');
a = a(I,:);

结果:

 a =

2 1 4
2 5 0
0 0 2

关于matlab - 根据非零行数对矩阵进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com