Sortieren Sie eine MatrixAlle,
Gibt es eine Möglichkeit, eine ähnliche Funktionalität wie die unten gezeigte zu erreichen:
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
Wie kann ich beim Sortieren die ursprünglichen Positionen der Elemente beibehalten?
Wenn ich beispielsweise jede Spalte der Matrix sortieren möchte, kann ich mir nur Folgendes vorstellen:
for(i = 1, i <= N cols(A), i ++,
t = A[0,i];
t1 = sort descending(t);
);Wie kann ich nun die ursprüngliche Position der Elemente ermitteln und beibehalten?
https://www.mathworks.com/help/matlab/ref/sort.html - In Matlab gibt es ein zweites Argument für die Sortierfunktion, das den Index zurückgibt
Ebenso können Sie in R den Index beibehalten. Sie fragen sich, wie das in JMP am besten geht?
Betreff: Eine Matrix sortieren@Mark_Bailey ,
Danke schön. Ich werde eine Anfrage an die Wunschliste senden, um hierfür eine vorgefertigte Funktion bereitzustellen.Ich hoffe, dass JMP in Zukunft eine Möglichkeit finden wird, die Matrix nicht mehr durchlaufen zu müssen. Ich würde gerne sehen, dass die apply()-Funktionsfamilie von R in JMP eingeführt wird.
Betreff: Eine Matrix sortierenDiese Anpassung sollte funktionieren:
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 );
Betreff: Eine Matrix sortieren@Mark_Bailey & @txnelson ,
Ich verstehe, dass es für Sie offensichtlich erscheint, dass Rank() das tut, was ich will. Hier ist jedoch ein Beispiel dafür, warum ich frage:
In Matlab passiert Folgendes, wenn Sie versuchen, eine Matrix zu sortieren. Es tut mir leid, dass ich dieses Beispiel von einer anderen Plattform übernommen habe. Ich habe versucht, das zu vermeiden, aber ich kann mir keinen besseren Weg vorstellen, um zu erklären, was ich suche. Wenn Sie sich also die Werte von „I“ ansehen, bleiben die Indizes erhalten

Wenn ich nun genau das Gleiche in JMP machen wollte, ist das die Vorgehensweise, die Sie mir empfehlen? Ja, es bringt mir nicht das gleiche Ergebnis. Außerdem würde ich es begrüßen, wenn ich für so etwas keine Schleife verwenden müsste
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);
);
Betreff: Eine Matrix sortierenÄhm, es ist das Ranking-Bit ...
Betreff: Eine Matrix sortieren@txnelson ,
Ich glaube, Sie beziehen sich auf den Inhalt, der auch hier behandelt wird – https://www.jmp.com/support/help/14/ranking-and-sorting.shtml . Dies erweitert jedoch nicht die Erfassung der Indizes, nach denen ich während der Sortierung suche. Hoffentlich übersehe ich nichts.
Betreff: Eine Matrix sortierenWerfen Sie einen Blick auf „Rangfolge und Sortierung“ im Abschnitt „Datenstrukturen, Matrizen“ des Skripthandbuchs