WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Alle Kombinationen in einem Vektor

 

Jan-Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2012, 03:44     Titel: Alle Kombinationen in einem Vektor
  Antworten mit Zitat      
Hallo zusammen,

ich würde gerne einen Beispielvektor v = [1,2,3,4,5,6,7,8] umschreiben. Dabei möchte ich alle möglichen Kombinationen der Vektorelemente später dann in einer Matrix speichern. Ich möchte aber nicht jede beliebige Permutation haben. Die Vektorelemente sollen in ihrer Reihenfolge bleiben.

Zur Veranschaulichung (runde Klammern sollen eine Paarung darstellen):

Code:
v1 = [(1,2),(3,4),(5,6,7),(8)]
v2 = [(1,2,3,4),(5,6,7,8)]
v3 = [(1,2,3),(4,5),(6,7,8)]
....


Und davon halt alle Möglichkeiten...und wenn Elemente in einer Paarung sind, sollen alle Elemente der Paarung den höchsten Wert aller in der Paarung befindlichen Elemente annhemen...also:

Code:
v1 = [(2,2),(4,4),(7,7,7),(8)]
v2 = [(4,4,4,4),(8,8,8,8)]
v3 = [(3,3,3),(5,5),(8,8,8)]


gibt es zur Erstellung der Paarungen irgendeinen Matlabbefehl? Oder kann mir jemand helfen, wie man das mit schleifen lösen kann?

vielen Dank schonmal

gruß
Jan


Jan-Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2012, 03:47     Titel:
  Antworten mit Zitat      
...ja...so war das nicht gewollt...diese ganzen gesichter sollen natürlich eine acht mit klammer-zu [ 8 ) ]darstellen....ich hoffe daraus wird jetzt nicht schon wieder son gesicht....

[EDITED, Jan S, ich habe den Code in eine Code-Umgebung eingebettet: Einfach per Maus markieren und "Code"-Button drücken.]
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.07.2012, 09:06     Titel: Re: Alle Kombinationen in einem Vektor
  Antworten mit Zitat      
Hallo Jan-Gast,

Wie viele Vektoren erwartest Du für die Zahlen 1 bis 8? Bei solchen Permutationsaufgaben ist es immer erforderlich, dies zunächst auszurechenen. Immer wieder scheitern Benutzer daran, wenn sie versuchen Vektoren zu erzeugen die 10^8 PetaByte RAM benötigen würden.

Wie soll die Paarung denn implementiert werden? Sollen dies immer noch Vektoren bleiben, oder benötigst Du ein Cell-Array, welches verschieden lange Vektoren enthält?

Das dynamische Erzeugen vieler Vektoren "v1, v2, v3,..." ist auf jeden Fall eine schlechte Idee. Einerseits macht dies Dein Programm deutlich langsamer, auf der anderen Seite kann man später mit dem Wust an Variablen gar nicht sinnvoll arbeiten. Es ist besser, die Ausgabe in einem Array zu speichern und Indices als Indices (sic!) zu verwenden: "v{1}, v{2}, ...". Dann ist eine "Pre-allocation" bei so großen Datenmengen erforderlich. Dafür benötigt man dann wieder die Anzahl der zu erstellenden Daten.

Was hast Du denn bisher versucht und welche Schwierigkeiten traten auf?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan-Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2012, 11:27     Titel:
  Antworten mit Zitat      
Hallo Jan,

erstmal Danke für das Gesichter weg machen =)...

Bisher habe ich versucht das ganze mit verschachtelten Schleifen zu lösen, bin aber kläglich an der Tatsache gescheitert, dass eben auch mehrere Paarungen verschiedener Länge in dem Vektor entstehen können.

Zur Berechnung der Anzahl der Möglichkeiten fällt mir spontan nichts ein, ich hoffte es ginge in irgendeiner Weise eben automatisch, da die Anzahl von 8 Vektoreinträgen auch nicht vorgegeben ist, der Vektor könnte auch nur 3 Einträge haben. Daher denke ich auch nicht, dass die Sache soviel Speicherplatz benötigt. Zudem könnte ich es verkraften, wenn das Programm nicht perfekt schnell läuft, da es nicht sonderlich groß ist und auch nicht mein Anspruch ist .

Für meine weitere Nutzung der umgeschriebenen Vektoren würde ich die gerne einfach jeweils als neue Zeile einer Matrix speichern, sie haben ja auch alle die geiche Länge.


gruß
Gast-Jan
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.