我怎么能选择性地提取多维数据从一个HDF5文件吗?

6视图(30天)
我新的操纵HDF5文件在一个低水平,而且我最近做一个脚本试图得到一些3 d数据的HDF5文件。我HDF5文件数据集(x, y, z)是x 29783 x 494 uint16 14。我想提取14 x 7001 x 494的一部分,从y = 89(集中指数)和停止在y = 7089。在低级函数文档的例子,这是我的代码:
plist =“H5P_DEFAULT”;
fid = H5F.open (imname);
dset_id = H5D.open (fid,' /图片');
= fliplr dim ([14 7001 494]);%从数据分离
mem_space_id = H5S.create_simple (3 dim []);%建立剪裁dataspace
file_space_id = H5D.get_space (dset_id);
抵消= fliplr (88 0] [0);%从第89列?
块= fliplr ([14 7001 494]);
H5S.select_hyperslab (file_space_id“H5S_SELECT_SET”、抵消、[][],块);
data = H5D.read (dset_id“H5ML_DEFAULT”,file_space_id mem_space_id plist);
H5D.close (dset_id);
H5F.close (fid);
我得到以下错误H5D.read()语句:错误使用hdf5lib2: HDF5库遇到一个错误“H5Dread”功能的执行期间,“选择+抵消不范围内”。我做错了什么?

答案(1)

每•艾萨克森
每•艾萨克森 2013年4月5日
你是知道的 1.8 HDF5 Matlab的例子 吗?
我发现他们有用当我试图使用Matlab中的低水平HDF5的支持。万博1manbetx然而,在我的低级别api的情况下,额外的功能是不值得麻烦。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!