我想知道在使用MATLAB API从'MAT-file'读取数据时是否有办法知道3D数组的'z'维度。我已经实现了一个从文件加载数据的函数,如下所示:
double* importMATFile(const char* i_file)
{
MATFile *pMF;
// open MAT-file
pMF = matOpen(i_file, "r");
// check for file errors
// Matlab Array Data
mxArray *mArrayData;
// Matlab Variable Name
const char* mVarName = NULL;
// read data from file
mArrayData = matGetNextVariable(pMF, &mVarName);
// pointer to mxArray data
double *dataPtr;
dataPtr = (double*) mxGetPr(mArrayData);
// NOTE MATLAB work in COLUMN-MAJOR order
// dimension of the array : rows
int32_t NROWS = mxGetM(mArrayData);
// Right now the z dimension must be known a priori
int32_t NDEPTH = 32
// dimension of the array : cols
int32_t NCOLS = mxGetN(mArrayData) / NDEPTH;
return dataPtr;
}
我在获取DEPTH值时遇到困难,以便知道列数。我已经注意到函数 mxGetNumberOfDimensions(mArrayData)的结果是 3 ,因此,API知道有三个维度。