|
Shadowman2712 |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 31.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 18:46
Titel: while Schleife
|
|
Guten Tag,
ich habe ein Problem bei folgendem Code:
da gibt mir Matlab Ergebnisse raus die ich nicht verstehe (nutze Matlab erst seit kurzem). Könnt Ihr mir die Ausgabe erklären und den grund für diese? Dachte zum Beispiel die erste Ausgabe ist -6 und nicht -14 denn wenn q = -2 dann ist die Bedingung abs(q) < 20 erfüllt da Betrag -2 = 2 < 20 also wird in der dritten Zeile mit q = -2 weiter gerechnet. daraus folgt: q = -2 * -2 -10 = 4-10=-6 und nicht -14. Wo ist mein Denkfehler?
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.07.2019, 18:53
Titel:
|
|
Hallo,
Zitat: |
Dachte zum Beispiel die erste Ausgabe ist -6 |
if abs (q) < 8 ist erfüllt und damit tritt "continue" ein, d.h. die nächste Iteration wird ausgeführt.
Im Debugger kannst du sowas auch wunderbar nachvollziehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Shadowman2712 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 31.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 18:59
Titel:
|
|
Danke für die schnelle Antwort.
Was genau heißt die nächste Iteration wird ausgeführt? wird q dann um 1 erhöht also zu q=-1? Wieso ist dann bei der ersten Iteration bzw. beim ersten Durchlauf das Ergebnis -14 und nicht -6 also was ist mein Denkfehler?
Debugger sagt mit leider nichts ich weiß nur dass ich breakpoints setzen kann (rote Punkte) und das Programm dann stoppt. Bekomme dann aber keine Informationen oder ähnliches angezeigt (auch nicht im Terminal). Wie gesagt bin noch neu.
|
|
|
Shadowman2712 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 31.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 19:01
Titel:
|
|
Oder wird erst ein Ergebnis ausgegeben wenn q < 8 nicht mehr erfüllt ist da continue kein Ergebnis ausgibt sondern das Programm ohne Ausgabe eines Ergebnisses weiterlaufen lässt (ich bin kein Informatiker ich schreibe lediglich eine einzige Info Klausur in meinem Studiengang)
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.07.2019, 19:05
Titel:
|
|
|
|
|
Hallo,
Zitat: |
wird q dann um 1 erhöht also zu q=-1 |
Warum denn? Du sagst ja nirgends, dass das gemacht werden soll.
Zitat: |
Wieso ist dann bei der ersten Iteration bzw. beim ersten Durchlauf das Ergebnis -14 und nicht -6 also was ist mein Denkfehler? |
Das habe ich dir gerade versucht zu erklären. Das continue sorgt dafür, dass wieder an den Anfang der while-Schleife gesprungen wird.
Zitat: |
Debugger sagt mit leider nichts ich weiß nur dass ich breakpoints setzen kann (rote Punkte) und das Programm dann stoppt. |
... und damit bist du im Debugger und kannst schrittweise die Zeilen durchgehen.
Zitat: |
Bekomme dann aber keine Informationen oder ähnliches angezeigt (auch nicht im Terminal). |
Was soll denn angezeigt werden? Was meinst du mit "Terminal"?
Du kannst z.B. den Wert von q im Workspace Browser beobachten.
Zitat: |
Wie gesagt bin noch neu. |
Dann hilft vielleicht das:
https://www.mathworks.com/learn/tutorials/matlab-onramp.html
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Shadowman2712 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 31.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 19:14
Titel:
|
|
also wenn ich schrittweise die zeilen durchgehe sehe ich keine weiteren Infos weder im workspace noch im Skript. Können Sie mir eventuell den Code Zeile für Zeile erklären was genau gemacht wird? Ich denke eine grundlegende Annahme bei mir ist wahrscheinlich falsch:
Der Code ist in der Altklausur vorgegeben und das Ergebnis soll ohne Matlab also im Kopf bestimmt werden ich komme aber nicht auf diese Werte:(-14 18 -46)
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.07.2019, 19:32
Titel:
|
|
Hallo,
im Workspace werden verschiedene Informationen zu den Variablen angezeigt, u.a. Value (sofern angewählt).
Wenn die Zeilen von 1-8 durchnummeriert sind:
1 q = -2
2 true, also zu Zeile 3
3 q = -6
4 true, also zu Zeile 5
5 zu Zeile 2
2 true, also zu Zeile 3
3 q = 2
4 true, also zu Zeile 5
5 zu Zeile 2
2 true, also zu Zeile 3
3 q = -14
4 false, also zu Zeile 7
7 Ausgabe -14
8 zu Zeile 2
2 true, also zu Zeile 3
3 q = 18
4 false, also zu Zeile 7
7 Ausgabe 18
8 zu Zeile 2
2 true, also zu Zeile 3
3 q = -46
4 false, also zu Zeile 7
7 Ausgabe 18
8 zu Zeile 2
2 false, also abgeschlossen.
Wenn du wirklich was lernen willst, kann ich dir nur empfehlen, die Tutorials durchzugehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Shadowman2712 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 31.07.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2019, 20:25
Titel:
|
|
Vielen Dank ich habe es verstanden. Ja mit den Tutorien ist es so eine Sache es besteht zeitknappheit aufgrund anderer Klausuren aber plotten etc. beherrsche ich schon recht gut. Habe noch einige Probleme mit dem print Befehl aber es ist noch etwas Zeit =)
|
|
|
|
|
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 - 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.
|
|