Ordenar una matrizTodos,
¿Hay alguna manera de lograr una funcionalidad similar a la que se muestra a continuación?
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
Al ordenar, ¿cómo puedo conservar las posiciones originales de los elementos?
Por ejemplo, si quisiera ordenar cada columna de la matriz, solo puedo pensar en hacer lo siguiente:
for(i = 1, i <= N cols(A), i ++,
t = A[0,i];
t1 = sort descending(t);
);Ahora, ¿cómo puedo determinar la posición original de los elementos y retenerlos?
https://www.mathworks.com/help/matlab/ref/sort.html - En Matlab, hay un segundo argumento para la función de clasificación que devuelve el índice
De manera similar, en R, puede conservar el índice. ¿Se pregunta cuál es la mejor manera de hacerlo en JMP?
Re: ordenar una matriz@Mark_Bailey ,
Gracias. Enviaré una solicitud a la lista de deseos para proporcionar una función enlatada para esto.Espero que en el futuro, JMP encuentre una forma de no tener que recorrer la matriz. Me encantaría ver la familia de funciones apply() de R introducida en JMP.
Re: ordenar una matrizEsta adaptación debería funcionar:
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: ordenar una matriz@Mark_Bailey & @txnelson ,
Entiendo que te parece obvio que Rank() hace lo que quiero, sin embargo, aquí hay un ejemplo de por qué estoy preguntando:
En Matlab, esto es lo que sucede cuando intenta ordenar una matriz. Disculpas por sacar este ejemplo de una plataforma diferente, traté de evitar hacer eso, pero no puedo pensar en una mejor manera de explicar lo que busco. Entonces, si observa los valores de "I", conserva los índices

Ahora, si quisiera hacer exactamente lo mismo en JMP, ¿es esta la forma en que me recomiendan que lo haga? Sí, no obtengo el mismo resultado. Además, agradecería no tener que usar un bucle para algo como esto.
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: ordenar una matrizUm, es el bit de clasificación...
Re: ordenar una matriz@txnelson ,
Creo que te refieres al contenido que también se cubre aquí: https://www.jmp.com/support/help/14/ranking-and-sorting.shtml . Sin embargo, esto no amplía la captura de los índices que estoy buscando mientras realizo la ordenación. Con suerte, no me estoy perdiendo algo.
Re: ordenar una matrizEche un vistazo a "Clasificación y ordenación" en la sección "Estructuras de datos, Matrices" de la Guía de secuencias de comandos