matlab 提取数值矩阵中的数据将其从大到小排序,并确定其在数值矩阵中的位置
时间: 2024-03-23 16:36:00 浏览: 55
matlab查找矩阵最大(小)值,并找到所在位置
可以使用 Matlab 中的 `sort` 函数对数值矩阵进行排序,使用 `find` 函数确定排序后的元素在原始矩阵中的位置。
例如,假设有一个数值矩阵 `A`,可以使用以下代码将其从大到小排序并确定位置:
```
% 定义数值矩阵
A = [5, 2, 8; 3, 1, 6; 4, 9, 7];
% 对数值矩阵进行排序
[sorted_vals, sorted_idx] = sort(A(:), 'descend');
% 确定每个元素在原始矩阵中的位置
[row_idx, col_idx] = ind2sub(size(A), sorted_idx);
% 打印排序后的值和其在原始矩阵中的位置
disp(['Sorted values: ', num2str(sorted_vals')]);
disp(['Positions:']);
for i = 1:length(sorted_vals)
disp([' ', num2str(sorted_vals(i)), ' at (', num2str(row_idx(i)), ',', num2str(col_idx(i)), ')']);
end
```
运行结果为:
```
Sorted values: 9 8 7 6 5 4 3 2 1
Positions:
9 at (3,2)
8 at (1,3)
7 at (3,3)
6 at (2,3)
5 at (1,1)
4 at (3,1)
3 at (2,1)
2 at (1,2)
1 at (2,2)
```
阅读全文