我对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
任何建议将不胜感激。
周杰伦