我正在寻找 Julia 中与 Matlab 相媲美的一些功能
save('myfile.mat', 'myvar1', 'myvar2')
比如使用HDF5.jl,很容易做到
@write filename myvar1 myvar2
但这要求我确切地知道要将哪些变量写入文件。
我希望能够在函数范围内在运行时选择要写入的变量,并使用符号或字符串指定它们的名称。
vars = [:myvar1, :myvar2]
@write filename vars
实现此目标的最佳方法是什么?
编辑
我知道我可以使用 JLD.jl 中的 save
作为 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...)
最佳答案
您可能想看一下 JLD package ,它建立在 HDF5 之上,更好地支持用户定义的 Julia 类型。 HDF5 和 JLD 都为 save
提供了为变量获取运行时名称的函数。
关于metaprogramming - 在运行时将变量保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37008846/