a = [1 2 3;4 5 6;7 8 9;];
[~ ,im]=sort(reshape(a,1,[])'descend');
那么实际上我得到的是输出,它不是一个排序数组?
答案 0 :(得分:1)
阅读the documentation; sort
的第二个输出参数是索引数组,而不是值数组。
答案 1 :(得分:1)
a = [1 2 3;4 5 6;7 8 9;];
A = reshape(a,1,[]);
[B ,im]=sort(A,'descend');
B
是排序的水平向量。 im
是索引,以便all(A(im)==B)
返回true
。
您并不特别需要reshape命令,或者另一种获得相同结果的方法是
A = a(:)';
a(:)从任何数组中生成一个列向量,并将其转换为水平数组。 (如果它们很复杂,那么也会将a的元素结合起来,但是你的元素并不复杂,所以这里有效。)
我很惊讶你不是在寻找
B = sort(a,'descend');
,它提供3x3矩阵输出,每列按降序排序。