a = [1 2 3;4 5 6;7 8 9;];
[~ ,im]=sort(reshape(a,1,[])'descend');
那么实际上我得到的是什么作为输出,它不是一个排序数组?
a = [1 2 3;4 5 6;7 8 9;];
[~ ,im]=sort(reshape(a,1,[])'descend');
那么实际上我得到的是什么作为输出,它不是一个排序数组?
阅读文档;的第二个输出参数sort
是索引数组,而不是值数组。
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 矩阵输出,每列按降序排序。