Wie kann ich eine Matrix in Mathematica nach ihrer zweiten Spalte sortieren?

7

Stellen Sie sich vor Sie haben:

%Vor%

und Sie möchten es in der zweiten Spalte bestellen, um

zu erhalten %Vor%

Ich habe versucht mit SortBy[a, Last] und arbeitet für die letzte Spalte, aber ich kann es nicht für die zweite Spalte arbeiten.

Vielen Dank im Voraus: -)

    
ninescita 22.11.2011, 20:09
quelle

6 Antworten

17

Das funktioniert:

%Vor%     
Dr. belisarius 22.11.2011 20:11
quelle
12

Alternativ

%Vor%     
Chris Degnen 22.11.2011 20:25
quelle
8

Und hier, für das obligatorische Timing (Ich habe die grundlegenden Sort zu den Methoden hinzugefügt):

%Vor%     
Sjoerd C. de Vries 22.11.2011 20:57
quelle
5

Vielleicht können Sie diese URL verwenden: Ссылка

Code, den Sie verwenden können:

%Vor%

Ergebnis:

%Vor%     
Niels 22.11.2011 20:13
quelle
5

Wenn Ihre Daten waren:

%Vor%

Und Sie brauchten eine stabile Sortierung für das zweite Element, was folgendes ergab:

%Vor%

Es könnte sehr frustrierend sein, dies mit SortBy zu lösen, es sei denn, Sie waren sich dessen bewusst:

%Vor%

Die Klammern {} sind wichtig.

    
Mr.Wizard 23.11.2011 05:50
quelle
3

nur ein Tipp in diesem Zusammenhang: Wenn Sie nicht-atomare Objekte wie Sqrt[...] verwenden, erhalten Sie möglicherweise unerwartete Ergebnisse:

%Vor%

Das liegt an

  

Sortieren ordnet normalerweise Ausdrücke an, indem zuerst die kürzeren gesetzt werden, und   dann Vergleichen von Teilen in einer Tiefe zuerst. (Mathematica Referenzhandbuch).

Verwenden Sie immer N, wenn eine numerische Sortierung gewünscht wird.

    
Peter Pein 23.11.2011 14:11
quelle

Tags und Links