排序矩陣全部,
有沒有辦法實現類似於下面所示的功能:
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 中,排序函數有第二個參數,它返回索引
同樣在 R 中,您可以保留索引。 想知道在 JMP 中執行此操作的最佳方法是什麼?
回复:對矩陣進行排序@馬克貝利,
謝謝。 我將向願望清單提交請求,以為此提供固定功能。我希望在未來,JMP 能夠提出一種不必循環遍歷矩陣的方法。 我很想看到 R 中的 apply() 函數係列被引入到 JMP 中。
回复:對矩陣進行排序這種適應應該有效:
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 );
回复:對矩陣進行排序@馬克貝利& @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);
);
回复:對矩陣進行排序嗯,就是排名位……
回复:對矩陣進行排序@txnelson ,
我相信您指的是此處也涵蓋的內容 - https://www.jmp.com/support/help/14/ranking-and-sorting.shtml . 但是,這並沒有擴展到捕獲我在執行排序時正在尋找的索引。 希望我沒有遺漏任何東西。
回复:對矩陣進行排序查看腳本指南“數據結構,矩陣”部分中的“排名和排序”