www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Matrix sortieren
Matrix sortieren < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matrix sortieren: magische Matrix
Status: (Frage) beantwortet Status 
Datum: 12:28 Mi 24.04.2013
Autor: mikexx

Aufgabe
Erzeugen Sie die Matrix A als magisches Quadrat der Ordnung 4.

Sortieren Sie die Einträge von A so, dass jeder Eintrag kleiner als der darunterliegende Eintrag und kleiner als der Eintrag links daneben ist.





Hallo!

Also zunächst habe ich also

A=magic(4)

erzeugt. Das hat bei mir die Matrix

[mm] A=\pmat{ 16 & 2 & 3 & 13 \\ 5 & 11 & 10 & 8 \\ 9 & 7 & 6 & 12 \\ 4 & 14 & 15 & 1 } [/mm]

ergeben.


Meine Idee wäre nun:

1: B=sort(A);   
2: C=sort(B','descend');
3: D=C';


Dann müsste doch D die gesuchte sortierte Matrix sein? Meine Probe sagt: Ja.


Aber geht das nicht vielleicht auch einfacher?




Viele Grüße

mikexx



        
Bezug
Matrix sortieren: Antwort
Status: (Antwort) fertig Status 
Datum: 13:27 Mi 24.04.2013
Autor: Al-Chwarizmi


> Erzeugen Sie die Matrix A als magisches Quadrat der Ordnung 4.
>  
> Sortieren Sie die Einträge von A so, dass jeder Eintrag
> kleiner als der darunterliegende Eintrag und kleiner als
> der Eintrag links daneben ist.
>  
>
>
>
> Hallo!
>  
> Also zunächst habe ich also
>  
> A=magic(4)
>  
> erzeugt. Das hat bei mir die Matrix
>  
> [mm]A=\pmat{ 16 & 2 & 3 & 13 \\ 5 & 11 & 10 & 8 \\ 9 & 7 & 6 & 12 \\ 4 & 14 & 15 & 1 }[/mm]
>  
> ergeben.
>  
>
> Meine Idee wäre nun:
>  
>
1: B=sort(A);   
2: > C=sort(B','descend');
3: >  D=C';


>  
> Dann müsste doch D die gesuchte sortierte Matrix sein?
> Meine Probe sagt: Ja.
>  
> Aber geht das nicht vielleicht auch einfacher?
>
> Viele Grüße
>  
> mikexx


Hallo mikexx,

ich habe Mühe, bei dieser Aufgabe einen Sinn zu
erkennen.
Beim "Sortieren" geht ja die "magische" Eigenschaft
der Matrix flöten.
Da die Originalmatrix genau die natürlichen Zahlen
von 1 bis 16 enthält, kann man ganz leicht eine
"sortierte" Matrix mit den gewünschten Eigenschaften
hinschreiben, ohne überhaupt den Computer einzu-
schalten ...

Oder habe ich da etwas Wichtiges missverstanden ?

LG ,   Al-Chw.

Bezug
                
Bezug
Matrix sortieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:30 Mi 24.04.2013
Autor: mikexx

Hallo, diese Aufgabe soll keinen tieferen Sinn haben, sie soll lediglich den Umgang mit Matlab trainieren und elementare Dinge wie Sortieren etc. einüben.

Bezug
                        
Bezug
Matrix sortieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:16 Mi 24.04.2013
Autor: Al-Chwarizmi


> Hallo, diese Aufgabe soll keinen tieferen Sinn haben, sie
> soll lediglich den Umgang mit Matlab trainieren und
> elementare Dinge wie Sortieren etc. einüben.


Ja, ich habe mir dies dann auch so gedacht, und
ich habe kurz nachgeschaut, was der Befehl 'sort'
in Matlab mit einer Matrix macht und wie die
Transponierte einer Matrix dort notiert wird.
Dann scheint dein Lösungsweg zum Ziel zu
führen, also zu einer Matrix, welche die
gestellten Bedingungen erfüllt.

So wie es aussieht, gäbe es jedoch auch viele
andere 4x4 - Matrizen mit denselben Elementen,
welche die geforderten Eigenschaften ebenfalls
aufweisen.

Beispiel:    [mm] $\pmat{5&3&2&1\\11&7&6&4\\12&10&9&8\\16&15&14&13}$ [/mm]

Man könnte also die Aufgabe wohl durch weiter
gehende Fragestellungen ergänzen. Das war aber
wohl auch gar nicht gemeint ...

LG ,   Al-Chw.

Bezug
        
Bezug
Matrix sortieren: Antwort
Status: (Antwort) fertig Status 
Datum: 16:54 Do 25.04.2013
Autor: wieschoo

Sonst würde ich mich zurück halten, wenn es um einfachere Lösungen geht.

Aber hier wird es nicht einfacher gehen.

Wohlmöglich geht es nicht wesentlich kürzer (deine Version in einer Zeile):
sort(sort(magic(4))','descend')'
(in 32 Zeichen)

Aber das weiß du bestimmt schon. Selbst eine Alternative
fliplr(reshape(sort(reshape(magic(4).',1,[])),4,4)')
(in 53 Zeichen)

oder
rot90(reshape(sort(reshape(magic(4),1,[])),4,4),3)
​(50 Zeichen)

sind nicht kürzer oder gar verständlicher.

wieschoo

edit: Ah doch!
rot90(sort(sort(magic(4))'),3)
Ist aber auch nur kürzer (30 Zeichen). Einfacher wird es dadurch nicht ;-)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]