在 Matlab .mat 文件中读取:变量的秩和变暗正确,但数据为 NULL

Reading in Matlab .mat file: variable's rank and dims correct, but data is NULL

本文关键字:NULL 数据 文件 mat Matlab 读取 变量      更新时间:2023-10-16

我正在尝试使用 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。