metaprogramming - 在运行时将变量保存到文件

标签 metaprogramming julia

我正在寻找 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/

相关文章:

c++ - 运行时动态函数解析

julia - 我怎么能不改变矩阵

types - 类型定义 : expected UnionAll, 得到 TypeVar

c++ - Boost.Hana 中是否有与 Boost.Fusion 中的 View 概念等效的概念?

Python 枚举组合

ruby - 如何使数组仅在第一次调用函数时初始化?

haskell - 如何在 Haskell 中打印标识符或绑定(bind)的名称?

julia - 寻找高噪声数据的聚类算法

oop - Julia:在类型中嵌入函数的构造函数

regex - 用 Julia 中的捕获组替换