gpt4 book ai didi

c++ - 使用 C++ 从 MAT 文件导入 3D 数组

转载 作者:太空狗 更新时间:2023-10-29 21:49:05 24 4
gpt4 key购买 nike

我想知道在使用 MATLAB API 从“MAT 文件”读取数据时是否有办法知道 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 知道存在三个维度。

最佳答案

我相信你想要的是mxGetDimensions .它将返回每个维度的大小。这应该适用于任何数量的维度,而不仅仅是 3 个。

关于c++ - 使用 C++ 从 MAT 文件导入 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com