Now it looks like you're doing it more correctly. One problem remaining: you
can't read a complex type like a sparse matrix using HDF5. You have to use
jldopen. Again: complicated objects need JLD both for reading and writing. The
only things you can read/write with HDF5 are very simple numbers (Float64,
Int32, etc), Arrays of simple numbers, strings, and arrays of strings. That's
basically it. Use JLD for anything else.
Unfortunately, you can't use "hyperslab" indexing for sparse matrices. It's
something that libhdf5 only supports for dense objects. It's not at all
obvious how to make it work for sparse objects.
--Tim
On Sunday, August 17, 2014 04:23:02 PM Paul Analyst wrote:
> I am closer , but ... inside Dso2.jld is only sparse array Ds:
>
> julia> fid = h5open("Dso2.jld", "r")
> HDF5 data file: Dso2.jld
>
> julia> dset=fid["Ds"]
> HDF5 dataset: /Ds (file: Dso2.jld)
>
> julia> dset[1:2,1:2]
> ERROR: Dataset indexing (hyperslab) is available only for bits types
> in _getindex at C:\Users\SAMSUNG2\.julia\v0.3\HDF5\src\plain.jl:1470
>
> julia>
> Paul
>
> W dniu 2014-08-17 14:39, Tim Holy pisze:
> > On Sunday, August 17, 2014 02:33:19 PM Paul Analyst wrote:
> >> example is about HDF5 ? not JLD...
> >
> > Here it doesn't matter.
> >
> > The error message is telling you that "Dso2" does not exist in the file
> > object fid. Try names(fid) to see what variables are defined.
> >
> > --Tim
> >
> >> ulia> obj = fid["Dso2"]
> >>
> >> DF5-DIAG: Error detected in HDF5 (1.8.11) thread 0:
> >> #000: ..\..\src\H5O.c line 246 in H5Oopen(): unable to open object
> >>
> >> major: Symbol table
> >> minor: Can't open object
> >>
> >> #001: ..\..\src\H5O.c line 1357 in H5O_open_name(): object not found
> >>
> >> major: Symbol table
> >> minor: Object not found
> >>
> >> #002: ..\..\src\H5Gloc.c line 430 in H5G_loc_find(): can't find object
> >>
> >> major: Symbol table
> >> minor: Object not found
> >>
> >> #003: ..\..\src\H5Gtraverse.c line 861 in H5G_traverse(): internal
> >>
> >> path traversal failed
> >>
> >> major: Symbol table
> >> minor: Object not found
> >>
> >> #004: ..\..\src\H5Gtraverse.c line 641 in H5G_traverse_real():
> >> traversal operator failed
> >>
> >> major: Symbol table
> >> minor: Callback failed
> >>
> >> #005: ..\..\src\H5Gloc.c line 385 in H5G_loc_find_cb(): object 'Dso2'
> >>
> >> doesn't exist
> >>
> >> major: Symbol table
> >> minor: Object not found
> >>
> >> RROR: Error opening object //Dso2
> >> in error at error.jl:22
> >> in o_open at C:\Users\SAMSUNG2\.julia\v0.3\HDF5\src\plain.jl:644
> >> in getindex at C:\Users\SAMSUNG2\.julia\v0.3\HDF5\src\plain.jl:649
> >>
> >> Paul
> >>
> >> W dniu 2014-08-17 13:34, Tim Holy pisze:
> >>> You need to read the version in the documentation more carefully. If you
> >>> look, you'll see that the documentation doesn't use "load" in this case.
> >>>
> >>> --Tim
> >>>
> >>> On Sunday, August 17, 2014 12:41:01 AM paul analyst wrote:
> >>>> Sorry , but i cant ....
> >>>>
> >>>> julia> Ds=load("Dso2.jld")
> >>>>
> >>>> Dict{Union(ASCIIString,UTF8String),Any} with 1 entry:
> >>>> "Ds" =>
> >>>>
> >>>> julia> d=Ds[:,1]
> >>>> ERROR: no method size(Dict{Union(ASCIIString,UTF8String),Any}, Int64)
> >>>>
> >>>> julia> A=re
> >>>> read readall readavailable readbytes!
> >>>> readcsv readdlm
> >>>> read! readandwrite readbytes readchomp
> >>>> readdir readline
> >>>> julia> A=read(Ds)
> >>>> ERROR: no method read(Dict{Union(ASCIIString,UTF8String),Any})
> >>>>
> >>>> julia> A=read("Ds")
> >>>> ERROR: no method read(ASCIIString)
> >>>>
> >>>> julia> A=read(Ds,"Ds")
> >>>> ERROR: no method read(Dict{Union(ASCIIString,UTF8String),Any},
> >>>> ASCIIString)
> >>>>
> >>>> Paul