Matlab HDF5如何创建NULL数据集

时间:2018-08-13 01:45:01

标签: matlab hdf5

我对HDF5非常陌生。我对Matlab有丰富的经验,并尝试使用Matlab的HDF5支持为应用程序中的主要数据结构创建一个简单的保护程序/加载程序。我的数据结构可以有空的变量和字符串字段。我的问题是:我可以将空变量另存为NULL数据集还是HDF5格式的任何占位符。

这是我要做什么的简单说明:

>> s = struct('f1',[1,2,3], 'f2','', 'f3',[4,5,6; 7,8,9], 'f4',[])

s = 

    f1: [1 2 3]
    f2: ''
    f3: [2x3 double]
    f4: []

>> fid = H5F.create('myfile.h5', 'H5F_ACC_TRUNC', 'H5P_DEFAULT', 'H5P_DEFAULT');
>> hdf5write('myfile.h5', '/s/f1',s.f1, 'WriteMode','append');
>> hdf5write('myfile.h5', '/s/f2',s.f2, 'WriteMode','append');
>> hdf5write('myfile.h5', '/s/f3',s.f3, 'WriteMode','append');
>> hdf5write('myfile.h5', '/s/f4',s.f4, 'WriteMode','append');
>> h5disp('myfile.h5')

以下h5disp的输出仅显示f1和f3的数据集,而缺少空白字段f2和f4的数据集。有什么方法可以将它们保存为相应的空值?

HDF5 myfile.h5 
Group '/' 
   Group '/s' 
       Dataset 'f1' 
           Size:  3
           MaxSize:  3
           Datatype:   H5T_IEEE_F64LE (double)
           ChunkSize:  3
           Filters:  none
           FillValue:  0.000000
       Dataset 'f3' 
           Size:  2x3
           MaxSize:  2x3
           Datatype:   H5T_IEEE_F64LE (double)
           ChunkSize:  2x3
           Filters:  none
           FillValue:  0.000000

任何建议将不胜感激。

周杰伦

0 个答案:

没有答案