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

if Schleife abbrechen wenn Bedingung nicht erfüllt

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2013, 13:16     Titel: if Schleife abbrechen wenn Bedingung nicht erfüllt
  Antworten mit Zitat      
Hallo Leute,

bin nicht so der Matlab-Pro und wollte mal fragen wie man einen Durchlauf einer Funktion sofort abbricht, wenn die Bedingung in der if-Schleife nicht erfüllt ist und dann beispielsweise "Error" ausgibt.

Code:
function xyz=test(xyz)
 
b=0;
c=0;
d=0;
e=0;
a=0;

 for k=1:165
   
   for i=1:length(xyz)
        xyz(i,3)=a;
        b=a+c;
        d=e+0.05;
   end
     
     if b>=d;
 % wenn diese Bedingung nicht erfüllt ist soll alles abbrechen
           
 end
   c=b;
   e=d;
 
end


Besten Dank schonmal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.10.2013, 13:31     Titel:
  Antworten mit Zitat      
Hallo,

Error ausgeben: naheliegenderweise mit
Code:

:)

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2013, 14:36     Titel:
  Antworten mit Zitat      
hmm danke aber ich glaube so meinte ich das nicht. ich wollte wissen wie man die if-Schleife schreibt, damit sie falls die Bedingung nicht erfüllt ist die komplette funktion stoppt und dann mittels printf "error" oder "Bedingung nicht erfüllt" sowas in der art ausgibt. Wenn die Bedingung aber erfüllt ist, soll die Funktion immer weiterlaufen bis zum Ende.
Und ich weiß nicht wie ich die dann If-Schleife schreiben muss.. ; )
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.10.2013, 14:42     Titel:
  Antworten mit Zitat      
Hallo,

etwa so?
Code:
if ~(b>=d) % oder hier: if b < d
error('Bedingung nicht erfüllt')
end


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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2013, 14:51     Titel:
  Antworten mit Zitat      
jup, denke das passt, besten dank!
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 09.10.2013, 16:07     Titel:
  Antworten mit Zitat      
Hallo,

alternativ dazu gibt es noch break bzw. return. Das printf kannst du ja davor schreiben Wink

Code:
for count = 1:30
   if count == 21
      display('Errormessage')
      break
   end
end


Die for-Schleife wird bis 21 ausgeführt und dann abgebrochen.

Grüße
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.457
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.10.2013, 16:30     Titel:
  Antworten mit Zitat      
Hallo,

wobei man aufpassen muss:
break bricht zwar die Schleife ab, aber führt den folgenden Teil des Programms noch aus.
return verlässt eine Funktion, macht aber dann ggf. im aufrufenden Code weiter (oder versucht es zumindest).
error bricht die Programmausführung tatsächlich komplett ab.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
bernoop
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 05.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.01.2021, 17:42     Titel: Re: if Schleife abbrechen wenn Bedingung nicht erfüllt
  Antworten mit Zitat      
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 - 2024 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.