3
MATLAB APIを使用して 'MATファイル'からデータを読み込む際に、3D配列の 'z'寸法を知る方法があるかどうかを知りたいと思います。私は次のようにファイルからデータをロードする機能を実装しました:C++を使用してMATファイルから3D配列をインポート
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)の結果がであることに気づいたので、APIは3つの次元があることを知っています。