排序矩阵全部,
有没有办法实现类似于下面所示的功能:
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 . 但是,这并没有扩展到捕获我在执行排序时正在寻找的索引。 希望我没有遗漏任何东西。
回复:对矩阵进行排序查看脚本指南“数据结构,矩阵”部分中的“排名和排序”