|
|
Input Variable für Funktion aus String-Liste auslesen |
|
RiCkDiE |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 02.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.09.2015, 13:40
Titel: Input Variable für Funktion aus String-Liste auslesen
|
 |
Hallo Zusammen, folgendes Problem:
- ich habe einige Variablen in meinen workspace geladen
- ich habe eine Liste (cell) mit den Variabelnamen
Nun möchte ich in einer Schleife nacheinander die Variablen in eine Funktion geben (Also nicht den string, sondern die jeweilige Variable, die hinter dem string steckt)
Workspace: var_1, var_2, var_3
list = {'var_1', 'var_2', 'var_3'}
i = 1 : length(list)
[ output ] = myfun( list{i} )
end
Nur das eben nicht der string in die Funktion gegeben werden soll, sondern die Variable selbst. Ich möchte nicht den Eval Befehl benutzen, geht das noch irgendwie anders? Ich habe nämlch einen Datentyp aus einer Toolbox, bei der der Eval Befehl nicht funktioniert.
Gruß
RiCkDiE
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.09.2015, 00:16
Titel: Re: Input Variable für Funktion aus String-Liste auslesen
|
 |
Hallo RiCkDiE,
Tja, da hast Du ein Problem. Du hast einen Index im Namen der Variablen versteckt und möchtest auf
eval
verzichten. Letzteres ist eine gute Idee, aber ersteres macht das leider unmöglich.
Die einzige Lösung ist es, gleich auf solche Verrenkungen wie "var_1, var_2, var_3" zu verzichten und "var{1}, var{2}, var{3}" zu verwenden. Dann entfällt auch das
eval
-Problem ganz von selbst.
Gruß, Jan
|
|
|
RiCkDiE |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 02.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2015, 22:12
Titel:
|
 |
Hm naja, wie gesagt es handelt sich hierbei nicht um standard MATLAB variablen, sondern um Objekte aus einer Toolbox. Die kann man eben nicht in einen cell-Array packen.
Schade, dass das nicht geht, ist ja eigentlich keine komplizierte Angelegenheit. Warum gibt es sowas nicht in MATLAB? Gibt es dafür einen besonderen Grund?
Trotzdem danke für die Antwort.
Gruß
RiCkDiE
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.09.2015, 22:50
Titel:
|
 |
Hallo,
Zitat: |
sondern um Objekte aus einer Toolbox. Die kann man eben nicht in einen cell-Array packen. |
Interessant. Sowas habe ich noch nie gesehen.
Um welchen Datentyp aus welcher Toolbox geht es denn?
Zitat: |
Schade, dass das nicht geht, ist ja eigentlich keine komplizierte Angelegenheit. Warum gibt es sowas nicht in MATLAB? |
Generell gibt es diese Möglichkeit mit eval, es ist nur schwierig zu debuggen etc. und daher wird es nach Möglichkeit gemieden.
Grüße,
Harald
|
|
|
RiCkDiE |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 02.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2015, 11:56
Titel:
|
 |
Hm ok ich bin dämlich, das geht doch. Man kann es doch in ein cell-Array laden. Glaube ich habe irgendwann mal den eval Befehl an dem Objekt getestet (Der funktioniert wirklich nicht) und dann irgendwie darauf geschlossen, dass es auch nicht funktioniert das Objekt in eine Zelle zu packen.
Na gut, dann vielen Dank, dann mache ich das jetzt so:
Beim laden der Dateien/Objekte alles in einen cell-array packen und dann mit einer Schleife an die Funktion übergeben, richtig?
Gruß
RiCkDiE
|
|
|
|
|
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.
|
|