我在阅读JLD文件时遇到过这个问题。我已按如下方式成功创建了该文件:
using JLD, HDF5
for i in 1:10
file = jldopen("/MY PATH/mydata.jld", "w")
write(file, "A", vector[i] for i in 10 )
close(file)
end
但是当我使用以下说明阅读文件时:
file = jldopen("/My PATH/my_tree/mydata.jld", "r")
对于第一条指令,它已正确执行,但是当我执行以下操作时:
read(file, "A")
我收到了这个错误:
WARNING: type Base.Generator{Core.Int64,##1#2} not present in workspace; reconstructing
ERROR: MethodError: no method matching julia_type(::Void)
in _julia_type(::ASCIIString) at /root/.julia/v0.5/JLD/src/JLD.jl:966
in julia_type(::ASCIIString) at /root/.julia/v0.5/JLD/src/JLD.jl:32
in jldatatype(::JLD.JldFile, ::HDF5.HDF5Datatype) at /root/.julia/v0.5/JLD/src/jld_types.jl:672
in reconstruct_type(::JLD.JldFile, ::HDF5.HDF5Datatype, ::ASCIIString) at /root/.julia/v0.5/JLD/src/jld_types.jl:737
in jldatatype(::JLD.JldFile, ::HDF5.HDF5Datatype) at /root/.julia/v0.5/JLD/src/jld_types.jl:675
in read(::JLD.JldDataset) at /root/.julia/v0.5/JLD/src/JLD.jl:381
in read(::JLD.JldFile, ::ASCIIString) at /root/.julia/v0.5/JLD/src/JLD.jl:357
in eval(::Module, ::Any) at ./boot.jl:237
答案 0 :(得分:4)
vector[i] for i in 10
创建一个生成器,JLD很乐意为您写入该文件。您可能需要数组,因此请将该表达式包装在collect
。