ich bin noch nicht ganz durch deine bildungsforschrift durchgestiegen.
Zitat:
etzt hätte ich gerne alle möglichen Zeilenkombinationen aus den Spaltenelementen
versteh ich nicht.
wie entsteht zb 1 2 3 4 6 ?
kannst du das nochmal anders erklären?
wie viele daten du in einer matrix speichern kannst hängt vom betriebssystem (32 64 bit ) und deinem ram ab.
die maximale größe für eine array kannst du mit dem befehl
rausfinden. bei mir zb 60486mb was dann 7.9275e+009 double werten entspricht. wobei da aber auch die swapfile dabei ist und das programm schon sehr langsam werden würde in dem bereich.
_________________
Nimm ein beliebiges Element aus der ersten Spalte, eins aus der zweiten, eins aus der dritten, eins aus der vierten und eins aus der fünften.
Davon dann alle möglichen Kombinationen.
Meine lange beispielhafte Ergebnismatrix geht dabei natürlich systematisch vor. Es beginnt mit den ersten Zeilenelementen jeder Spalte. In den ersten 7 Zeilen wird dann die letzte Spalte hochgezählt. Ist diese bei 11, wird dann in der 4. Spalte hochgezählt, die 5. beginnt wieder bei 5.
Nach 48 (7x7) Zeilen ist dann auch die 4. Spalte hochgezählt, wodurch dann die 3. Spalte um eins erhöht wird usw.
Ganz am Ende sind dann quasi alle Spalten hochgezählt und ich hab dazwischen alle möglichen Kombinationen, z.B. auch 6 2 6 7 6 (das ist also das 6. Element der 1. Spalte, 1. Element der 2. Spalte, 4. Element der 3. Spalte, 4. Element der 4. Spalte und 2. Element der 5. Spalte.
Weißt du jetzt was ich meine? Es ist quasi wie jedes Zahlensystem, z.B. das dezimale. Nach der 899 kommt die 900. Ich hab die Einer hochgezählt, da dieser beim Maximum ist, geht die Zehnerstelle auch eins nach oben, diese ist auch beim Maximum, als geht auch die Hunderterstelle eins hoch. Nun zählt wieder der einer hoch, bis nach zehn mal hochzählen auch die Zehnerstelle wieder eins hochgeht usw.
A=[1,2,3,4,5;...
2,3,4,5,6;...
3,4,5,6,7;...
4,5,6,7,8;...
5,6,7,8,9;...
6,7,8,9,10;...
7,8,9,10,11];
iline=1;
B=nan(7^5,5);
for a=1:7 for b=1:7 for c=1:7 for d=1:7 for e=1:7
B(iline,:)=[A(a,1),A(b,2),A(c,3),A(d,4),A(e,5)];
iline=iline+1;
end end end end end
Zuletzt bearbeitet von Winkow am 25.07.2013, 10:24, insgesamt 2-mal bearbeitet
Kabbi
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.07.2013, 10:22
Titel:
7x7 ist natürlich 49
Mir ist grad noch eingefallen wie es noch einfach zu verstehen ist. Ich benutz einfach eine einfacherer Beispielmatrix (jetzt mal 3x3):
A=
1 1 1
2 2 2
3 3 3
Mir fehlte eigentlich am Ende nur das
B(iline,=[A(a,1),A(b,2),A(c,3),A(d,4),A(e,5)];
das hab ich einfach net hinbekommen^^
Eien frage hätte ich aber noch: Das ganze ist ja jetzt für den Fall das ich 5 Spalten hab. Kann man auch das iwie so schreiben, dass sie spaltenanzahl variabel ist? (wie gesagt zwischen 5 und 11)? Die Anzahl der Spalten ist ja gleich der Anzahl der nötigen for-Schleifen. Kann man sowas überhaupt automatisieren?
Ich kann natürlich auch einfach für jeden Fall von 5 bis 11 das for-Schleifen-Konstrukt separat schreiben.
Ah das ist natürlich auch clever.
Darauf wär ich so fix nicht gekommen. Vielen vielen Dank für deine Hilfe
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
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.