如何将结构体数组保存到H5

6视图(30天)
Kat李
Kat李 2022年4月8日
编辑: Kat李2022年4月8日
嗨伙计们
我这个简单的结构体数组wdata, 4提交和保存为结构体数组
基坑= int32 ([1153;1184;1027;11]);
FieldB = {的外观(静态),“摄入”,
进气歧管的,“测试”};
FieldArray = [randn (1、ADIM0); randn (1, ADIM0); randn (1, ADIM0); randn (ADIM0)];
FieldC = int32 ([11;12;13;14]);
我= 1:DIM0
wdata(我)。基坑=基坑(i);
wdata(我)。FieldB = FieldB(我);
wdata(我)。FieldArray = FieldArray(我);
wdata(我)。FieldC = FieldC;
结束
我想拯救wdata为h5化合物,但我被困内存分配
谁能帮忙吗?
thansk
1评论
Kat李
Kat李 2022年4月8日
编辑:Kat李 2022年4月8日
试过,但失败了
昏暗的= 4;
文件= H5F。创建(fileName,“H5F_ACC_TRUNC”,
“H5P_DEFAULT”,“H5P_DEFAULT”);
intType = H5T.copy (“H5T_NATIVE_INT”);
深圳(1)= H5T.get_size (intType);
strType = H5T。复制(“H5T_C_S1”);
H5T。set_size (strType“H5T_VARIABLE”);
深圳(2)= H5T.get_size (strType);
%数组大小
base_type_id = H5T.copy (“H5T_NATIVE_DOUBLE”);
arrayType = H5T。array_create (base_type_id 1 ADIM0);
type_id = H5T.copy (arrayType);
H5T。set_size (type_id 8);
深圳(3)= H5T.get_size (arrayType);
intType = H5T.copy (“H5T_NATIVE_INT”);
深圳(4)= H5T.get_size (intType);
抵消(1)= 0;
抵消(2:4)= cumsum(深圳(1:3));
memtype = H5T。创建(“H5T_COMPOUND”总和(深圳));
H5T。在sert (memtype,
的基坑抵消(1)intType);
H5T。在sert (memtype,
“FieldB”抵消(2)strType);
H5T。在sert (memtype,
“FieldArray”抵消(3)arrayType);
H5T。在sert (memtype,
“FieldC”抵消(4)intType);
文件类型= H5T。创建(“H5T_COMPOUND”总和(深圳));
H5T。在sert (filetype,的基坑抵消(1)intType);
H5T。在sert (filetype,“FieldB”抵消(2)strType);
H5T。在sert (filetype,“FieldArray”抵消(3)arrayType);
H5T。在sert (filetype,“FieldC”抵消(4)intType);
= h5空间。create_simple (fliplr (dim), []);
dset = H5D。创建(file, DATASET, filetype, space,“H5P_DEFAULT”);
H5D。写(dset memtype,“H5S_ALL”,“H5S_ALL”,“H5P_DEFAULT”翻转(wdata));

登录置评。

答案(0)

社区寻宝

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

开始狩猎!