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

Das Problem mit den for's und if's

 

hummel2
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2015, 22:19     Titel: Das Problem mit den for's und if's
  Antworten mit Zitat      
Hallo,
ich habe einen Code in meinem Programm, den ich gerne etwas "intelligenter" umschreiben würde (das ist bisher Matlab Programmierung Level1 was ich da betreibe). Habe den Code etwas vereinfacht (und hoffe verständlich) dargestellt. Und zwar habe ich, bitte steinigt mich nicht Embarassed , zwei For-schleifen in welchen eine längere If-Anweisung enthalten ist. In dieser if-Anweisung ist mir die function1 wichtig (die ersten 3 ifs). So wie ich das programmiert habe funktioniert das gut.

Code:

for i  = 1:100

   for rotate = 10:20

        if function1(rotate+abstand(1), r, phi) == 1
           c(i) = Wert(1);

        elseif function1(rotate+abstand(2), r, phi) == 1
           c(i) = Wert(2);

        elseif function1(rotate+abstand(3), r, phi) ==1
           c(i) = Wert(3);



        elseif andere_function(delta, epsilon) ==1
        ...
        else andere_function2(x, y) ==1
...

Nun kann es später aber sein, dass ich 9 dieser function1's habe. Die will ich ungern alle immer händisch einfügen.
Gibt es eine Möglichkeit (z.B mittels einer For-Schleife Embarassed ) das automatisiert zu machen? Ich hab das schon mit einer for-schleife versucht, das Problem ist, dass die elseifs unten nicht mehr funktionieren wenn ich die ersten if's in eine for-schleife packe.
Das sah in etwa so aus:

Code:


anzahl = 9;

for i  = 1:100

   for rotate = 10:20

          for versuch = 1:anzahl

               if function1(rotate+abstand(versuch), r, phi) == 1
                  c(i) = Wert(versuch);
               
          end
       

               elseif andere_function(delta, epsilon) ==1
        ...
              else andere_function2(x, y) ==1
...

Das funktioniert offensichtlich nicht. Nur stehe ich auf dem Schlauch und weiß nicht wie ich das realisieren könnte Sad
Könnte mir jemand in Level2 helfen? Confused
Danke im voraus.

hummel

Zuletzt bearbeitet von hummel2 am 11.07.2015, 22:27, insgesamt einmal bearbeitet
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: 11.07.2015, 22:23     Titel:
  Antworten mit Zitat      
Hallo,

du willst wohl den Schleifenindex verwenden:

Code:
  if function1(rotate+abstand(versuch), r, phi) == 1
                  c(i) = Wert(versuch);
end


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

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 25.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2015, 22:28     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja klar, danke. Hab das editiert.
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: 11.07.2015, 22:35     Titel:
  Antworten mit Zitat      
Hallo,

du brauchst wohl noch ein break , damit die folgenden (else)if-Abfragen nicht mehr ausgeführt werden.

Grüße,
Harald
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.