|
|
if-schleife funktioniert nicht |
|
Günter64 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.06.2009, 15:50
Titel: if-schleife funktioniert nicht
|
|
Hallo nochmal,
möchte eine if-schleife aufbauen, und zwar vereinfacht mit diesem Code:
Allerdings bekomme ich als Ergebnis lediglich B=[0 0 0 0 0], obwohl ich B=[-2 -1 0 0 0] erwartet habe. Denke es liegt wohl daran, dass es kein Skalar ist. Ist wahrscheinlich auch blöder Anfängerfehler, aber ich bin bisher erfolgreich um Schleifen drumherumgekommen. Nur jetzt nicht.
Wär' super, wenn mir jemand helfen könnte.
Gruß
Günter
|
|
|
|
|
ben |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 21.08.08
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2007a, R2008b
|
|
|
|
|
|
Verfasst am: 17.06.2009, 16:06
Titel:
|
|
Hab jetzt den Fehler auf die schnelle nicht gefunden, kommst aber auch so zur Lösung:
Gruß, Ben
|
|
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 17.06.2009, 16:40
Titel:
|
|
Hi, nimm lieber ben sein Vorschlag als if Anweisungen. Trotzdem, dass Problem mit deinen If Anweisungen ist, du kannst keine If Anweisungen mit binären Skalaren machen. Eine If Anweisung sollte immer eine wahre oder falsche Aussage betreffen. In deinem Fall kommt aber ein binärer Skalar raus. Matlab interpretiert dies als ein "Falsch" deswegen kommt es zum else, dort wird dann B=A*0 ausgeführt also alle Einträge in A mit 0 multipliziert.
Viele Grüße,
derOli
P.S. ich kopiere mir bei solchen Sachen manchmal die Zwischenergebnisse raus zum Beispiel guck dir mal das Ergebnis von A<0 an usw.
|
|
|
Günter64 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.06.2009, 09:22
Titel:
|
|
Okay, der Tip von Ben funktioniert gut für dieses Beispiel, aber dann bin ich darauf festgelegt, dass ich nur mit 0 weiterrechnen kann falls die Bedingung nicht erfüllt ist.
Bei
funktioniert meine if-Anweisung problemlos, da ich ja nur den ersten Eintrag von A anspreche. Wie ist es möglich, dass die Anweisung auf jeden einzelnen Eintrag von A angewendet wird und somit dann nur B=[-2 -1 0 10 20] ausgegeben wird.
Hoffe es ist klar geworden, was ich meine .
Vielen Dank schonmal!
Gruß
Günter
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.06.2009, 09:37
Titel:
|
|
Du könntest eine Schleife drumlegen, aber das ist nicht wirklich hübsch. Wesentlich eleganter ist folgendes:
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|