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');
では、実際に出力として得られるのは何ですか?それはソートされた配列ではありませんか?
ドキュメントを読んでください。の 2 番目の出力パラメーター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 マトリックス出力が得られます。