MATLAB中sort线索引转换为行列索引

 MATLAB中sort函数可以对数据进行排序,本代码在此基础上,将sort返回的数据的线索引转换为原始矩阵的行列索引,以矩阵matrix = [8 4; 7 1; 3 6]为例,运行代码可得到如下结果:

具体代码如下: 

% matrix是需要排序的矩阵
matrix = [8 4; 7 1; 3 6];

% 获取矩阵的大小
[rows, cols] = size(matrix);
rows_cols = rows*cols;
index_matrix = zeros(2,rows_cols);

% 初始化一个与矩阵元素数量相同的索引数组
indices = 1:rows*cols;

% 将矩阵转换为列向量
matrix_vector = matrix(:);

% 降序排序矩阵的列向量
[sorted_matrix_vector, sorted_indices] = sort(matrix_vector, 'descend');

% 根据排序后的索引获取原始索引
original_indices = indices(sorted_indices);   % 矩阵是按列进行计数的。

% 将排序后的列向量转换回矩阵形式
sorted_matrix = reshape(sorted_matrix_vector, [rows, cols]);
IX_fac = sorted_matrix(:);

% 将原始线索引转换为行和列索引
for i_rows_cols = 1:rows_cols
    original = original_indices(i_rows_cols);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UltraMan之神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值