|
Tip-Top |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 20.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:00
Titel: Evalin in Funktion
|
 |
Hallo alle zusammen,
ich habe folgendes Problem.
Ich habe ein m-file, welches problemlos funktioniert.
Wenn ich es allerdings als "function" deklariere, damit ich es auch aus dem workspace aufrufen kann, bekomme ich folgende Fehlermeldung:
Hat jemand eine Idee woher das kommen kann?
Vielen Dank schon mal!
|
|
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:10
Titel:
|
 |
Könntest du noch die Zeile in der der evalin-Befehl steht posten und den Ausdruck den du eingibst?
so wird es schwierig sein auf den Fehler zu kommen
|
|
|
Tip-Top |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 20.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:20
Titel:
|
 |
Da hast du wahrscheinlich recht!
In "index" stehen einfache Variablennamen.
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:30
Titel:
|
 |
Hi,
da es als Script geklappt hat und nun als Funktion nicht mehr, gibt es in deinem 'base' Workspace vermutlich kein y, sondern nur lokal im Funktionsworkspace.
Am besten im Funktionsworkspace ausrechnen ( z.B. per eval ) und dann kannst du mit assignin die Variablen in den 'base' Workspace bekommen.
|
|
|
Tip-Top |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 20.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:34
Titel:
|
 |
Vielen Dank erst mal für deine Antwort!
Kannst du mir vielleicht auch noch einen Tipp geben wo bzw. wie ich das in etwa umsetzen kann?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:35
Titel:
|
 |
Hallo,
ich schließe mich der Vermutung an, dass y nur im Funktions-, nicht aber im Base Workspace existiert.
Ich rate stark davon ab, EVALIN und ASSIGNIN zu verwenden. Es macht den Code unübersichtlich zu lesen und vor allem auch schwer zu debuggen. Wenn Variablen in einem anderen Workspace zur Verfügung stehen müssen, dann sollten sie dorthin übergeben werden.
Grüße,
Harald
|
|
|
mawi |

Forum-Century
|
 |
Beiträge: 106
|
 |
|
 |
Anmeldedatum: 14.04.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 10:43
Titel:
|
 |
Da seid ihr mir zuvor gekommen^^
Aber da der evalin-Befehl so wie ich das verstanden habe in der Funktion aufgerufen wird ist es doch so dass y nur im base-Workspace, nicht aber im Funktionsworkspace existiert.
Oder ich habe das ganze falsch verstanden.
Ich würde die Variable(n) nach Möglichkeit auch als Rückgabewert an den Base-Workspace übergeben
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 11:43
Titel:
|
 |
Hallo,
y wird auf der rechten Seite der Zuweisung verwendet.
Mit EVALIN findet alles in dem Workspace statt, auf den Bezug genommen wird (hier: base workspace). Heißt:
- Eventuelle auf der rechten Seite der Zuweisung verwendete Variablen (wie hier y) müssen in diesem (base) Workspace existieren
- Variablen auf der linken Seite der Zuweisung werden in diesem (base) Workspace erstellt.
Ein Testbeispiel:
Rufe die Funktion auf mit:
--> Fehlermeldung ähnlich zu der geposteten
Rufe die Funktion auf mit
--> funktioniert, 2 wird zurückgegeben (also der Wert aus Base Workspace)
Grüße,
Harald
|
|
|
Tip-Top |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 20.07.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.07.2011, 12:00
Titel:
|
 |
Vielen, vielen Dank!!!
Ihr seid echt spitze!
|
|
|
|
|
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.
|
|