到文件我正在尋找在朱莉婭一些功能堪比Matlab的保存變量在運行時
save('myfile.mat', 'myvar1', 'myvar2')
例如,使用HDF5.jl,這是很容易做到
@write filename myvar1 myvar2
但這要求我確切知道要將哪些變量寫入文件。
我希望能夠在運行時間,在函數範圍內選擇要寫入的變量,並使用符號或字符串指定它們的名稱。
vars = [:myvar1, :myvar2]
@write filename vars
什麼是最好的方法來實現這一目標?
編輯
我知道,我可以使用save
從JLD.jl爲save("file.jld", "myvar1", myvar1)
。但我希望能夠挽救未在編譯時已知變量列表,允許save
一個電話(或類似):
if condition
myvar1 = 1
vars = [:myvar1]
else
myvar1 = 1
myvar2 = 2
vars = [:myvar1, :myvar2]
end
# what goes here?
save(filename, vars...)
我知道我可以爲變量提供運行時名稱。但我想選擇要在運行時保存的變量列表。我看到的所有解決方案都使用'save'等方式,要求將變量名稱寫入源代碼中。請參閱我的編輯。 –
@MicahSmith你可以用'eval()'來計算這些變量。例如:'myvar1 = 1;瓦爾=:myvar1; save(「save.jld」,string(vars),eval(vars))' –
@張實唯謝謝,這幾乎是缺少的一塊。我寫道,我正在尋找可能在*函數範圍內工作的解決方案,並且'eval(vars)'將在全局範圍之外失敗。 –