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

Anfänger braucht kleine Hilfe bei einer Schleife :-)

 

Jekyll
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2010, 22:19     Titel: Anfänger braucht kleine Hilfe bei einer Schleife :-)
  Antworten mit Zitat      
Hi,
bin ganz neu hier im Forum und hoffe ich bin auch in der richtigen Sparte gelandet mit meiner frage.

folgendes Problem:

Ich habe einen Vektor: V = [a;b;c];
a = [0:1:5];
b = [0:1:5];
c = [0:1:5];

jetzt möchte ich es gerne so machen, das zuerst c durchläuft
dann b um 1 hoch zählt
dann soll c nochmal durchlaufen
dann b nochmal um 1 hoch
usw. bis b=5 ist
dann soll a um 1 hoch gehen
und das ganze spiel von vorne
bis alle Spalten 5 sind

kurz gesagt, ich will alle möglichkeiten einmal durch spielen.

hoffe ihr wisst was ich meine.

wie gekomm ich das denn hin????
Private Nachricht senden Benutzer-Profile anzeigen


josekamara
Forum-Meister

Forum-Meister


Beiträge: 529
Anmeldedatum: 26.04.08
Wohnort: München
Version: ---
     Beitrag Verfasst am: 12.07.2010, 22:36     Titel:
  Antworten mit Zitat      
was meinst du mit hochzählen?!
_________________

Simulation
Private Nachricht senden Benutzer-Profile anzeigen
 
Jekyll
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2010, 22:40     Titel:
  Antworten mit Zitat      
na ich meine V ist zuerst [0;0;0]
dann [0;0;1]
[0;0;2]
[0;0;3]
[0;0;4]
[0;0;5]
dann
[0;1;0]
[0;1;1]
[0;1;2]
[0;1;3]
[0;1;4]
[0;1;5]
dann
[0;2;0]
usw.
usw.
[1;0;0]
[1;0;1]
[1;0;2]
bis
[5;5;5]
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.07.2010, 23:18     Titel:
  Antworten mit Zitat      
Hallo Jekyll,

Du suchst nach Permutationen mit Wiederholungen und Reihenfolge. Ich habe dies als Mex-File in Matlab's FileExchange veröffentlicht:
http://www.mathworks.com/matlabcentral/fileexchange/26242
In der Funktion TestVChooseKRO findet sich auch eine M-Version.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jekyll
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2010, 23:46     Titel:
  Antworten mit Zitat      
Hallo Jan,
ersteinmal danke für deine Antwort.

Ich stelle fest, wir haben unterschiedliche Vorstellungen von einem Anfänger Very Happy

ich check nix, ich seh nur " tooLazy" und "dummy"^^
in meinem fall dann wohl "toodummy"

aber wenigstens weiß ich jetzt das ich permutations suche, dann werd ich jetzt erstmal damit etwas rum spielen.
vllt. bekomm ich es ja hin
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.07.2010, 00:37     Titel:
  Antworten mit Zitat      
Hallo Jekyll,

Ich meinte die Unterfunktion TestVChooseKRO->VChooseKRO_M.

Du kannst es auch so versuchen, wie Du Beispielzahlen auf dem Papier erstellen würdest, z.B.:
Code:

x = zeros(6*6*6, 3);
v = zeros(1, 3);
ind = 2;
while 1
   v(3) = v(3) + 1;
   if v(3) > 5
      v(3) = 0;
      v(2) = v(2) + 1;
      if v(2) > 5
         v(1) = v(1) + 1;
         if v(1) > 5
            break;
         end
      end
   end
   x(ind, :) = v;
end


Viel Erfolg, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 08:35     Titel:
  Antworten mit Zitat      
Hallo,

ich denke, in dem Fall geht es einfacher:
Code:
for a = 0:5
for b = 0:5
for c = 0:5
% mit a,b,c arbeiten
end
end
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jekyll
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 14:01     Titel:
  Antworten mit Zitat      
Hallo Harald,
ja genau das ist was ich gesucht habe, danke.

Stelle aber fest, dass ích jetzt ein zweites Problem habe.
Ich brauche nicht 3 sondern 19 for-Schleifen, jetzt wird die Rechenzeit inakzeptabel hoch.
Was kann ich da machen???

Außerdem überschreibt er mir immer meine Kombinationen und gibt nur die letzte z.B.[5;5;5] aus. Wie schaffe ich es, dass er mir eine Matrix erstellt in der alle Kombinationen gespeichert sind.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 21:25     Titel:
  Antworten mit Zitat      
Hallo,

Code:
M = zeros(length(a), length(b), length(c));
for a = 0:5
for b = 0:5
for c = 0:5
M(a,b,c) = ...
end
end
end


19 geschachtelte for-Schleifen sind in der Tat utopisch. Da musst du dir wohl überlegen, wie du das anders angehen kannst. Vielleicht kann man dir ja dabei helfen, wenn du dein Problem schilderst (am besten separater Thread).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jekyll
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2010, 10:56     Titel:
  Antworten mit Zitat      
Danke!

Ja, zu diesem Schluss bin ich gestern auch gekommen und hab tatsächlich einen anderen Lösungsweg gefunden.
Private Nachricht senden Benutzer-Profile anzeigen
 
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.