3
導入3D陣列我想知道是否有從使用MATLAB API A「MAT-文件」讀取數據時知道一個三維陣列的「Z」尺寸的一種方式。我已經實現了一個功能從文件加載數據如下:從MAT-文件中使用C++
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;
}
我得到的深度值的時候,爲了我被困知道列數。我已經注意到,函數的結果mxGetNumberOfDimensions(mArrayData)是,因此,該API知道有三個維度。