ich mich für einige Funktionen in Julia vergleichbar mit MatlabVariablen speichern zur Laufzeit-Datei
save('myfile.mat', 'myvar1', 'myvar2')
Zum Beispiel suchen, mit HDF5.jl, ist es leicht
@write filename myvar1 myvar2
Aber um dies zu tun erfordert, dass ich genau weiß, welche Variablen ich in die Datei schreiben möchte.
Ich möchte in der Lage sein zu wählen, welche Variablen zur Laufzeit in einem Funktionsumfang schreiben und ihre Namen mit Symbolen oder Zeichenfolgen angeben.
vars = [:myvar1, :myvar2]
@write filename vars
Was wäre der beste Weg, dies zu erreichen?
EDIT
Ich weiß, dass ich save
von JLD.jl als save("file.jld", "myvar1", myvar1)
verwenden können. Aber ich will in der Lage sein, eine Liste von Variablen zu speichern, die zum Zeitpunkt der Kompilierung nicht bekannt sind, so dass ein einziger Aufruf zu save
(oder ähnlich):
if condition
myvar1 = 1
vars = [:myvar1]
else
myvar1 = 1
myvar2 = 2
vars = [:myvar1, :myvar2]
end
# what goes here?
save(filename, vars...)
Ich weiß, dass ich Laufzeitnamen für Variablen zur Verfügung stellen könnte. Aber ich möchte die Liste der Variablen auswählen, die zur Laufzeit gespeichert werden. Alle Lösungen, die ich mit 'save' usw. sehe, erfordern, dass der Variablenname in die Quelle geschrieben wird. Bitte sehen Sie meine Bearbeitung. –
@MicahSmith Sie können diese Variablen mit 'eval()' berechnen. Zum Beispiel: 'myvar1 = 1; vars =: myvar1; speichern ("save.jld", string (vars), eval (vars)) –
@ 张 实 唯 Danke, das ist fast das fehlende Stück. Ich habe geschrieben, dass ich nach einer Lösung suche, die in * Funktionsumfang * funktionieren könnte und 'eval (vars)' wird außerhalb des globalen Gültigkeitsbereichs fehlschlagen. –