Zugriff auf Variablen von string name
Brauche ich zum laden von experimentellen Daten in scicoslab, eine (ziemlich schlecht gestaltet) clone Gabel scilab was passiert, zur Unterstützung der graphischen Modellierung. Die Dokumentation im Internet ist ziemlich schlecht, aber es ist einigermaßen ähnlich scilab und Oktave.
Die Daten, die ich verarbeiten muss, enthalten ist, in eine bestimmte Anzahl von text-Dateien: Data_005
, Data_010
, ..., Data_100
. Jeder von Ihnen geladen werden können mit dem -ascii - flag für die loadmatfile
Befehl.
Das problem kommt von der Tatsache, dass loadmatfile("foo", "-ascii")
lädt die Datei foo.mat
in eine variable namens foo
. Um zu Zyklus auf die Daten-Dateien, die ich brauchen würde, um etwas zu tun wie:
for i = [5:5:100]
name = sprintf("Data_%02d", i);
loadmatfile(name, "-ascii");
x = read_var_from_name(name);
do_something(x);
end
wo das, was ich Suche, ist ein builtin read_var_from_name
das würde mir erlauben, um den Zugriff auf die interne Symboltabelle von string.
Wissen Sie, wenn gibt es eine ähnliche Funktion?
Hinweise:
- Es gibt keine Möglichkeit, das überschreiben dieses Verhalten, wenn Sie Ihre Datei in ascii - format;
- In dieser phase könnte ich auch gebrauchen Oktave (keine grafische Modellierung beteiligt ist), obwohl es sich auch so verhält.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den oben genannten Werken in MATLAB und Scilab in der Dokumentation sagt, es hat auch eine
eval
Funktion. Nicht sicher, ob ich dich richtig verstanden habe, aber.@arne.b hat eine gute Antwort.
In Ihrem Fall können Sie auch tun, in matlab:
eval()
ist als das böse) vielen Dank für diesen Hinweis; ich hatte keine Ahnung, was diese syntax existiert!lets go durch deine Punkte:
eval
Funktion, die im Grunde das macht, was Sie wollen. Allerdings ist diese Funktion ist veraltet, zu Gunsten derevstr
. Es gibt auch dieexecstr
Funktion, die es Wert ist, studiert.loadmatfile
, soweit ich das verstanden habe, "versucht", um laden Sie die definierten Variablen in MATLAB.mat
- Datei (MATLAB proprietären tabellarischen format) in den Scilab-workspace. Zum Beispiel, wenn es eine variable ist, diefoo
es werde "versuchen", um die variable zu erstellenfoo
und lädt seinen Wert aus dem MATLAB-Skript. Überprüfen Sie diese Beispiel. Ich würde eine variable erstellenx(i) = foo
in der for-Schleife. wieder Ihre Frage ist nicht ganz klar..mat
- Dateien.