行列を並べ替える全て、
以下に示すような機能を実現する方法はありますか?
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
並べ替え時に、要素の元の位置を保持するにはどうすればよいですか?
たとえば、マトリックスの各列を並べ替えたい場合、次のことしか考えられません。
for(i = 1, i <= N cols(A), i ++,
t = A[0,i];
t1 = sort descending(t);
);では、どうすれば要素の元の位置を特定して保持できますか?
https://www.mathworks.com/help/matlab/ref/sort.html -Matlabには、インデックスを返すsort関数の2番目の引数があります
同様にRでも、インデックスを保持できます。 JMPでそれを行うための最良の方法は何でしょうか?
Re:行列を並べ替える@Mark_Bailey 、
ありがとうございました。 このための定型機能を提供するために、ウィッシュリストにリクエストを送信します。将来的には、JMPがマトリックスをループする必要がない方法を考え出すことを願っています。 Rのapply()関数ファミリーがJMPに導入されるのを楽しみにしています。
Re:行列を並べ替えるこの適応は機能するはずです:
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3];
sort matrix = Function( { m }, { t, b=[], i=[] },
For( j = 1, j <= N Cols( m ), j++,
t = A[0,j];
b ||= Sort Descending( t );
i ||= Matrix( Reverse( As List( Rank Index( t ) ) ) );
);
Eval List( { b, i } );
);
{ B, I } = sort matrix( A );
Show( A, B, I );
Re:行列を並べ替える@Mark_Bailey & @txnelson 、
Rank()が私が望むことを実行することはあなたには明白に見えることを理解していますが、ここに私が求めている理由の例があります:
Matlabでは、行列を並べ替えようとすると次のようになります。 別のプラットフォームからこの例を引き出してしまったことをお詫びします。それを避けようとしましたが、自分が何を求めているのかを説明するためのより良い方法を考えることはできません。 したがって、「I」の値を見ると、インデックスが保持されています。

さて、もし私がJMPでまったく同じことをしたいのなら、これはあなたが私に勧めている方法ですか、そうです、それは私に同じ結果をもたらさないのです。 また、このようなものにループを使用する必要がないことを感謝します
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3];
for(i = 1 , i <= N Cols(A), i++,
t = A[0,i];
t1 = Sort Descending(t);
ranks = Rank(t);
);
Re:行列を並べ替えるええと、それはランキングビットです...
Re:行列を並べ替える@txnelson 、
ここでも取り上げられているコンテンツを参照していると思います- https://www.jmp.com/support/help/14/ranking-and-sorting.shtml 。 ただし、これは、ソートの実行中に探しているインデックスをキャプチャすることについては拡張されません。 うまくいけば、私は何かを逃していません。
Re:行列を並べ替えるスクリプトガイドの「データ構造、行列」セクションの「ランキングと並べ替え」をご覧ください。