|
|
Variable aus Matlab-Workspace in Funktion verwenden |
|
CryptKeeper |

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 10.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB 7.9.0 (R2009B) / Octave 3.2.3
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 14:34
Titel: Variable aus Matlab-Workspace in Funktion verwenden
|
 |
|
 |
|
Ich hab ne Funktion, in die eine Matrix mit Daten übergeben wird. Jetzt will ich, dass wenn man beim Aufrufen der Funktion keine Matrize angibt, automatisch eine gewisse Matrix übergeben wird, nennen wie sie 'daten'.
Also entweder gibt man selbst eine Matrix an: 'funktion(eigene_daten)', oder man gibt nichts an: 'funktion' und die Funktion verhält sich, als hätte man 'funktion(daten)' aufgerufen hätte.
Wenn ich aber innerhalb der Funktion 'daten' aufrufe, geschieht nix, obschon die Variable im Matlab-Workspace vorhanden ist. Via Google hab ich herausgefunden, dass das Problem ist, dass das Problem ist, dass die Workspaces der Funktion und von Matlab (von wo aus die Funktion aufgerufen wird), getrennt sind.
Wie krieg ich nun die Matrize in die Funktion rein, ohne sie beim Funktionsaufruf explizit anzugeben?
Abgesehen davon funktioniert übrigens alles, d.h. wenn man keine eigene Variable eingibt, dann wird 'daten' aufgerufen und weiterverarbeitet. Das einzige Problem das ich habe, ist, dass, wenn 'daten' in der Funktion aufgerufen wird, nicht die Matrize aus Matlab verwendet wird...
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 15:38
Titel:
|
 |
Hallo,
das ginge mit
Ich würde aber eher meine Anwender durch eine entsprechende Fehlermeldung dazu erziehen, die Funktion korrekt aufzurufen.
Grüße,
Harald
|
|
|
CryptKeeper |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 10.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB 7.9.0 (R2009B) / Octave 3.2.3
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 15:44
Titel:
|
 |
Danke für die zügige Antwort, funktioniert bestens so.
Der Anwender in diesem speziellen Fall bin übrigens sowieso ich, ich will nur nicht immer die Variablen extra eintippen müssen während ich am Script bastle. Muss ich zwar nur jeweils einmal, danach kann ich den ganzen Befehl per Pfeiltaste aufrufen, aber trotzdem...
Danach wird die Funktion von jemand anderem in ein GUI eingebaut und von dort aus angerufen, dann ist die Eingabe eh kein Thema mehr.
|
|
|
xPashAx |

Forum-Guru
|
 |
Beiträge: 294
|
 |
|
 |
Anmeldedatum: 18.05.09
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 15:49
Titel:
|
 |
...und wenn ich alle daten speichern will.
wie geht das dann
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 16:23
Titel:
|
 |
Hallo,
das geht nur mit je einer Variablen. Ich würde dringend empfehlen, die Dateien so zu strukturieren, dass etwas derartiges nicht notwendig ist.
Wenn es absolut unbedingt sein muss:
Ja, es ist eklig, und genau deswegen und weil nicht mehr nachvollziehbar ist sollte man es nicht machen.
Grüße,
Harald
|
|
|
CryptKeeper |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 31
|
 |
|
 |
Anmeldedatum: 10.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB 7.9.0 (R2009B) / Octave 3.2.3
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 16:28
Titel:
|
 |
Ich habs bei mir jetzt übrigens so angewendet, dass jeweils die Standardmatrize eingelesen wird, wenn ich für einen Inputwert 0 eingebe. So kann ich ohne viel Tippen von den einen Inputwerten die Standardwerte eingeben und anderen Inputwerten frei angeben. Das erleichtert das Basteln und könnte ja immer noch wieder entfernt werden, wenn das Skript mal fertig ist.
|
|
|
xPashAx |

Forum-Guru
|
 |
Beiträge: 294
|
 |
|
 |
Anmeldedatum: 18.05.09
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 16:34
Titel:
|
 |
dankeee
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.04.2011, 16:43
Titel:
|
 |
Hallo,
ich möchte an dieser Stelle noch einmal betonen, dass ich diese Lösung absolut bescheiden finde (ich darf das sagen, sie kommt ja schließlich von mir ). Ich empfehle dringend die Suche nach einer anderen, eleganteren Lösung - siehe auch der andere Thread.
http://www.gomatlab.de/alle-variabl.....es-uebergeben-t17516.html
Grüße,
Harald
|
|
|
|
|
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.
|
|