|
|
Erzeugung aller Permutationen einer quadrat. Bool-Matrix |
|
EliteTUM |

Forum-Fortgeschrittener
|
 |
Beiträge: 70
|
 |
|
 |
Anmeldedatum: 21.04.11
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.09.2012, 20:51
Titel: Erzeugung aller Permutationen einer quadrat. Bool-Matrix
|
 |
Hi Leute,
ich habe folgendes Problem:
Ich möchte boolsche Matrizen der Größe n-x-n in allen möglichen Permutationen erzeugen. Weiß wer wie das gehen könnte? Wollte zuerst mit zwei for-loops über alle Matrix-Elemente gehen aber das reicht ja nicht wirklich.
Zum Verständnis: Angenommen ich möchte alle Permutationen einer 2-x-2 Matrix erzeugen, dann wären das folgende 2^(2x2)=16 Möglichkeiten:
|00| , |10| , |01| , |00| , |00| , |11| , |10| , |00|
|00| , |00| , |00| , |10| , |01| , |00| , |10| , |11|
|01| , |10| , |01| , |01| , |10| , |11| , |11| , |11|
|01| , |01| , |10| , |11| , |11| , |01| , |10| , |11|
Bin für jede Hilfe dankbar. Hab irgendwie gerade eine absolute Denkblockade!
_________________
- EliteTUM
_____________________________________
|
|
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.09.2012, 22:07
Titel:
|
 |
geht laut Docu leider nur bis 7x7 (dann ist der Speicher eh voll :
Grüße
Sirius
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.09.2012, 23:47
Titel: Re: Erzeugung aller Permutationen einer quadrat. Bool-Matrix
|
 |
Hallo EliteTUM,
Wenn ich mir die Daten so anschaue und für eine 2x2 Matrix 16 Werte herauskommen, also 2^4, kommt mir das bekannt vor. Da stehen ja die Binär-Darstellungen der Zahlen 0 bis 15, wenn man mal die Zeilen aneinandersetzt.
DEC2BIN ist da eine Lösung, aber es gibt leider ein CHAR-Vektor zurück. Aber es geht auch direkt:
Dies prüft z.B. ob das 4.te Bit der Zahl x in der Binärdarstellung gesetzt ist oder nicht.
Gruß, Jan
|
|
|
EliteTUM |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 70
|
 |
|
 |
Anmeldedatum: 21.04.11
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.09.2012, 12:57
Titel:
|
 |
@Sirius3:
Ah, vielen Dank für deinen Code. Musste noch 1-2 Kleinigkeiten anpassen, jetzt klappt es immerhin für n=1 bis n=4. Vielen vielen Dank! Auf die Idee, wie von "Jan S" nochmal geschrieben, das Ganze als die Zahlen 0 bis 2^(n*n)-1 in Binärdarstellung zu sehen, bin ich nicht gekommen.
@Jan S:
Jap, Danke für deinen Hinweis. Jetzt hab ich auch verstanden woher Sirius3 seinen Code nimmt
dec2bin ist insofern jedoch geeigneter, da damit automatisch der gesuchte String erzeugt wird. Mit der Abfrage ==1 macht man damit ja schnell ein Logical.
Der endgültige Code sieht so aus, leider wird das ganze für n = 5 sehr speicherintensiv und langsam. Für n = 4 dauert folgender code ca. 2.5s bei mir, für n = 5 würde er dann bei Annahme eines linearen Zusammenhangs ca. 20-30min brauchen. Evtl. versuche ich das doch in C oder zumindest als mex-Function umzusetzen.
_________________
- EliteTUM
_____________________________________
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|