阅读JLD文件

时间:2016-07-08 09:04:13

标签: file file-io makefile julia

我在阅读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

1 个答案:

答案 0 :(得分:4)

vector[i] for i in 10创建一个生成器,JLD很乐意为您写入该文件。您可能需要数组,因此请将该表达式包装在collect