모두,
행렬이 있고 행렬을 정렬하려는 경우 현재 열이나 행에 대한 루프를 사용하지 않고 행렬을 정렬 할 수있는 함수를 알지 못합니다. 나는 이것이 특히 효율적이라고 생각하지 않습니다. 또한 정렬이 수행 된 후에는 위치를 유지하는 직접적인 방법이 없습니다. 자세한 내용은 다음 토론을 참조하십시오.
https://community.jmp.com/t5/Discussions/Sort-a-matrix/mp/85678#M38246
토론에서 볼 수 있듯이, 뿡뿡 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 );나는 또한 동일한 라인을 따라 조금 더 추가하는 자유를 취하여 제한된 필요보다 더 일반화되도록 만들었습니다.
sort matrix = Function( { m,order }, { t, b=[], i=[] },
If(order == "ascending",
For( r = 1, r <= N Cols( m ), r++,
t = A[0,r];
b ||= Sort Ascending( t );
i ||= Matrix( As List( Rank Index( t ) ) );
);
Eval List( { b, i } );
,
// else
If(order == "descending",
For( r = 1, r <= N Cols( m ), r++,
t = A[0,r];
b ||= Sort Descending( t );
a i ||= Matrix(Reverse(As List( Rank Index( t ) )) );
);
Eval List( { b, i } );
);
);
);