读取 Matlab .mat 文件:变量的等级和暗淡正确,但数据为 NULL
Reading in Matlab .mat file: variable's rank and dims correct, but data is NULL
我正在尝试使用 matio 从 Matlab 读取 .mat 文件,并且变量带有正确的等级和暗淡度,但数据为空:
mat_t *matfp;
matvar_t *matvar;
matfp = Mat_Open("the_file.mat",MAT_ACC_RDONLY);
matvar = Mat_VarReadInfo(matfp,"my_var");
assert(matvar->rank==2);
assert(nrows==matvar->dims[0] && ncols==matvar->dims[1]);
但是
matvar->data==NULL
我假设读取 .mat 文件时出现问题,但我不确定如何诊断它。
您应该检查 MATLAB 文件版本。
可能该文件是用 MATLAB 7.3 版编写的或经过压缩的。
如果你在没有 zlib 的情况下构建你的 lib (matio),你将无法读取压缩数据。
如果您在没有 zlib 和 HDF5 的情况下构建,您将无法读取文件版本 7.3 文件。
要访问变量的数据,您必须使用 Mat_VarRead() 而不是 Mat_VarReadInfo()。否则 matvar->data 为 NULL.
我正在尝试使用 matio 从 Matlab 读取 .mat 文件,并且变量带有正确的等级和暗淡度,但数据为空:
mat_t *matfp;
matvar_t *matvar;
matfp = Mat_Open("the_file.mat",MAT_ACC_RDONLY);
matvar = Mat_VarReadInfo(matfp,"my_var");
assert(matvar->rank==2);
assert(nrows==matvar->dims[0] && ncols==matvar->dims[1]);
但是
matvar->data==NULL
我假设读取 .mat 文件时出现问题,但我不确定如何诊断它。
您应该检查 MATLAB 文件版本。
可能该文件是用 MATLAB 7.3 版编写的或经过压缩的。
如果你在没有 zlib 的情况下构建你的 lib (matio),你将无法读取压缩数据。 如果您在没有 zlib 和 HDF5 的情况下构建,您将无法读取文件版本 7.3 文件。
要访问变量的数据,您必须使用 Mat_VarRead() 而不是 Mat_VarReadInfo()。否则 matvar->data 为 NULL.