|
gastname |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2021, 01:26
Titel: if Bedingung
|
|
Hallo
Ich habe ein Problem bei folgendem Programm. Wenn x=y ist, soll U_s den x Wert annehmen, wenn x ungleich y, soll das Programm Fehler anzeigen bzw. Fehler ausgeben.
Wie geht das?
1) Wenn x=y, soll U_s den x Wert annehmen. Matlab zeigt aber den Wert nicht an und rechnet mit U_s nicht weiter...
2) Wenn x ungleich y, soll Matlab ,,Fehler" ausgeben und nicht mehr mit U_s sozusagen weiterrechnen...
|
|
|
|
|
Knygs |
Forum-Fortgeschrittener
|
|
Beiträge: 58
|
|
|
|
Anmeldedatum: 26.03.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b, 2017a, 2021a
|
|
|
|
|
|
Verfasst am: 02.05.2021, 12:31
Titel:
|
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2021, 13:08
Titel:
|
|
Hallo,
danke für die Antwort. Die erste Frage ist mir wichtiger, also der genauere Code ohne das mit dem Fehler:
Das Programm rechnet mit U_s nicht weiter, also ich habe ein Beispiel wo x=y ist, aber das Programm sagt (siehe Anhang):
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.PNG |
Dateigröße: |
11.15 KB |
Heruntergeladen: |
221 mal |
|
|
|
Knygs |
Forum-Fortgeschrittener
|
|
Beiträge: 58
|
|
|
|
Anmeldedatum: 26.03.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2015b, 2017a, 2021a
|
|
|
|
|
|
Verfasst am: 02.05.2021, 13:27
Titel:
|
|
U_s wird bei dir nie mit einem Wert belegt, also die Bedingung x == y ist nicht war.
Die Berechnung von x und y wirkt auf mich so, dass du da Zahlen mit sehr vielen Nachkommastellen bekommst. Ich könnte mir vorstellen, dass du hier, auch wenn die Zahlen theoretisch gleich sein sollten, Unterschiede im Bereich der Maschinengenauigkeit hast was dazu führt, dass die Zahlen als unterschiedlich behandelt werden.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2021, 13:28
Titel:
|
|
Hallo,
was sind denn die beteiligten Variablen? Skalare, Vektoren, Matrizen?
Durch kleine numerische Ungenauigkeiten können Werte, die eigentlich gleich sein müssten, sich minimal voneinander unterscheiden. Ein Beispiel:
Wenn Zahlen beteiligt sind, die im Binärsystem nicht mit 64 Bit exakt dargestellt werden können, sollte nie auf Gleichheit getestet werden, sondern auf geringfügigen Unterschied:
Sollte das nicht weiterhelfen, poste bitte ein reproduzierbares Beispiel.
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 ;)
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2021, 14:28
Titel:
|
|
Danke für die Antworten.
Also x und y gibt Matlab aus mit 3.7849, also sind beide doch gleich.
Ich gebe mal die anderen Werte an:
c =9.3160
alpha =12.7190
beta =53.5810
U_a =2.2400
U_b =8.1870
Habt ihr eine Idee?
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2021, 14:31
Titel:
|
|
Ahh
Damit klappt es
if(abs(x-y)<0.0001)
U_s=x
end
Theoretisch kann man das so stehen lassen?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2021, 14:35
Titel:
|
|
Hallo,
Zitat: |
Also x und y gibt Matlab aus mit 3.7849, also sind beide doch gleich. |
Die angezeigten Stellen sind gleich, aber nicht die Zahlen insgesamt:
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 ;)
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2021, 14:43
Titel:
|
|
|
|
|
|
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.
|
|