|
|
Funktion erstellen, die meinen Fehler korrigiert |
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.12.2016, 14:26
Titel:
|
 |
Hallo,
ich will noch eine weitere ähnliche Funktion schreiben.
Beispiel:
sollwert= [10 20];
istwert = [12 23];
neuerWert= [9 8]; %Mein Wert, der korrigiert werden soll
Mit fehler habe ich den Fehler in % ausgerechnet. Diesen Fehler möchte ich auf den neuerWert draufrechnen und ausgeben
Der Code stimmt so nicht. Vllt kann mir jemand helfen, das klappt nicht so ganz
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 20.12.2016, 16:49
Titel:
|
 |
Hallo Homer10,
Bitte lasse uns nicht raten: Was ist denn an Deiner Berechnung falsch? Dir ist das wahrscheinlich sonnenklar, aber die Leser im Forum, die keine Kristall-Kugel verwenden, können nicht wissen, was Du eigentlich erhalten möchtest.
Lasse die *100 und /100 weg, denn es bringt keinen Vorteil mit Prozenten zu rechnen, oder? 0.1 oder 10% ist ja das gleiche.
Die Variable istwert ist innerhalb der Funktion nicht definiert. Du brauchst sie also auch als Input.
Gruß, Jan
|
|
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.12.2016, 22:09
Titel:
|
 |
Meine erste Frage ist die Folgende
Wie kann man in matlab folgende Rechnung implementieren?
-Ich will den Wert von - istwert_korrigiert -
-Der Wert berechnet sich durch
istwert_korrigiert = istwert + istwert*(fehler/100);
So funktioniert es nicht
istwert und fehler sind vektoren
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 00:11
Titel:
|
 |
Hallo Homer10,
Zitat: |
So funktioniert es nicht |
Dann erkläre noch, was daran nicht funktioniert. Bekommst Du eine Fehlermeldung? Dann poste eine vollständige Kopie davon. Oder weicht das Ergebnis von Deinen Erwartungen ab? Dann beschreibe beide.
Es ist viel einfacher Probleme zu lösen als sie zu erraten.
Zitat: |
istwert und fehler sind vektoren |
Bedeutet das, dass Du bei der Multiplikation eine Fehlermeldung bekommst? Und Du möchtest eine wlement-weise Multiplikation? Dann nimm .* statt *
Gruß, Jan
|
|
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 09:02
Titel:
|
 |
Ohne klammer hat es doch funktioniert. Ich habe es seperat im Command Fenster getestet. Wie sieht es aus, wenn ich es als Funktion haben will. Ich verstehe das mit den Funktionen nicht. Nehmen wir mal an(der Inhalt ist egal)
sollwert, istwert und neuerWert habe ich Werte zugewiesen. Jetzt will ich das mir istwert_korrigiert ausgegeben wird. Es geht wie gesagt nicht um den Inhalt, sondern grundsätzlich wie man mit Funktionen arbeitet. Wahrscheinlich habe ich wieder vergessen irgendwas zu erwähnen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 11:33
Titel:
|
 |
Hallo Homer10,
Die Dokumentation erklärt Funktionen eigentlich erschöpfend. Hast Du dort schon mal nachgelesen? Es wäre nicht effizient, wenn ich das nacherzähle.
Im Code-Beispiel, dass Du gepostet hast, wird istwert_korrigiert bereits als Output zurückgegeben. Insofern ist die Frage eigentlich schon beantwortet.
Die Definitions-Zeile der Funktion legt fest, welche Variablen als Input hinein kommen und als Output wieder heraus:
Hilft das bereits?
Gruß, Jan
|
|
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 12:32
Titel:
|
 |
Wenn ich eingebe
und auf run gehen,
kommt die Meldung:
Error using Fehlerkorrektur (line 7)
Not enough input arguments.
Ich habe doch mein Input mit sollwert, istwert, neuerWert vollständig.
Alle habe ich im Command Werte zugewiesen.
Habe es genauso(angepasst) gemacht wie im ersten Beitrag von Tom_Gast
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 13:56
Titel:
|
 |
Hallo,
und wie rufst du die Funktion auf?
Die Fehlermeldung lautet ja "nicht genug Eingabeargumente". Stellst du denn beim Aufruf überhaupt Eingabeargumente zur Verfügung, oder drückst du stattdessen vielleicht auf den Run-Button (und rufst die Funktion somit ohne Eingabeargumente auf)?
Grüße,
Harald
|
|
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 14:31
Titel:
|
 |
Ich rufe es mit
istwert_korrigiert = Fehlerkorrektur(sollwert, istwert, neuerWert);
auf
Ist das richtig?
Alle meine Inputs sind im Workspace als Vektoren schon drinne.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 14:38
Titel:
|
 |
Hallo,
bei diesem Aufruf dieser Funktion sollte die Fehlermeldung nicht auftreten.
Wird bei
das richtige Verzeichnis angezeigt?
Grüße,
Harald
|
|
|
Homer10 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 17
|
 |
|
 |
Anmeldedatum: 24.11.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 15:02
Titel:
|
 |
Auf dem Desktop habe ich einen Ordner, wo es reingespeichert wird.
Selbe Verzeichnis wie in der Leiste im Programm
Muss es irgendwo anders rein?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.12.2016, 16:17
Titel:
|
 |
Hallo,
1. bekommst du immer noch die Fehlermeldung?
2. Falls ja, führe bitte den Befehl aus.
Grüße,
Harald
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
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.
|
|