Я пытаюсь прочитать в .mat файл из Matlab, используя matio, и переменная имеет правильный ранг и димс, но данные равны нулю:
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 или со сжатием.
Если вы создаете свою библиотеку lib (matio) без zlib, вы не можете читать сжатые данные.
Если вы собираете без zlib и HDF5, вы не можете читать файлы версии 7.3.
Других решений пока нет …