Verfasst am: 24.08.2011, 12:24
Titel: Ergebnisse einer if - Schleife speichern
Hallo Matlab-User,
ich hätte da mal ein Problem und bräuchte eure Hilfe.
Also ich möchte die Ergebnisse der if-Schleife von jedem Durchlauf in dem Vektor Ergebnis=[] speichern und nutzbar machen, leider funktioniert das nicht.
Hier mein Code:
Code:
clc; clearall
A=[2345; 5421;6712]
a=20
b=30
Ergebnis=[] for i=1:3 if A(i,1)< a & A(i,2)>b
Ergebnis=1 elseif A(i,1)<a & A(i,2)<b
Ergebnis=2 elseif A(i,1)>a & A(i,2)<b
Ergebnis=3 else A(i,1)>a & A(i:2)>b
Ergebnis=4 end
Ergebnis(i)=Ergebnis
end
In der letzten Bedingung ist ein Bug: Meinst Du "else" oder "elseif else % A(i,1)>a & A(i:2)>b"? Das führt zu unterschiedlichen Ergebnissen, wenn A(i,1)==a!
Dein Code erzeugt einige MLint-Warnungen. Die solltest Du beachten!
Bei größerem A wäre es effizienter, die Abfragen "A(i,1)>a" nicht doppelt zu machen.
Die geschichte mit Ergebnis=[] und Ergebnis(i)=Ergebnis war bisher meine Standardmöglichkeit zum Speichern von Ergenisse. Hatte bisher immer funktioniert, nur nicht bei der if-ANWEISUNG .
In Zukunft ist das CLEAR Single:D.
Einen schönen Abend noch
Mops
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.