matlab怎么对向量进行排序,matlab - 对向量的每个范围进行排序 - 堆栈内存溢出

本文介绍了如何在MATLAB中对向量进行排序,包括使用reshape和sort函数对多维矩阵的每列单独排序,以及如何通过索引来实现对多个向量的相同排序。还详细说明了如何存储排序后的索引并应用到新的向量上。
摘要由CSDN通过智能技术生成

如果要避免循环,可以结合使用reshape和sort来实现所需的功能:

b = [5 4 1 2 3 1 4 5 3 2 3 2 1 5 4];

b2 = reshape(b, [5 3]); % Reshape your array to be a [5x3] matrix

b2_new = sort(b2, 1); % Sort each column of your matrix seperately

b_new = reshape(b2_new, size(b)); % Reshape the outcome back to the original dimensions

或者,全部在一行中:

b_new = reshape(sort(reshape(b, [5 3]), 1), size(b));

当然,您必须更改数字5和3以适合您的问题。 重要的是要确保您为重塑命令输入的第一个值(在本例中为5 )等于您要排序的子向量的长度,因为Matlab是列主要的。

编辑:

如果要对一个特定的向量进行排序,然后对其他向量应用相同的重新排序,则可以使用sort函数的可选第二个输出参数。 使用与上述相同的向量:

b = [5 4 1 2 3 1 4 5 3 2 3 2 1 5 4];

b2 = reshape(b, [5 3]);

产量:

b2 = 5 1 3

4 4 2

1 5 1

2 3 5

3 2 4

假设您要对第一列进行排序,并对第二和第三列应用相同的重新排序,则可以执行以下操作:

[~,idx] 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值