在 C++ 中从 .mat 文件读取变量

Reading Variable from .mat file in C++

我正在制作一个程序,其中我在 matlab 中进行一些处理,然后在 matlab 中使用以下命令将结果保存在 .mat 文件中,

save data x;

假设 x=2 的值,

现在我正在从 Visual studio 2010 年的 C++ 程序中读取相同的 data.mat 文件。我的程序正在编译,我也可以完美地读取数组的名称及其维度,..现在问题是当我使用以下命令时,我无法读取 x 的确切值。每次我 运行 程序时,它都会向我显示一些随机值。

variable = matGetNextVariable(pmat, &name);

现在变量的值=50779048..

请指导我哪里有错误。变量的值应该是2,因为我从matlab cammand中保存了2..

这个问题我已经查过了,但是好像没人回答, Reading .mat file in C++

void main(int argc, char **argv)
{
    MATFile *pmat;
    const char* name=NULL;
    mxArray *pa;

    /* open mat file and read it's content */
    pmat = matOpen("data.mat", "r");
    if (pmat == NULL) 
    {
        printf("Error Opening File: \"%s\"\n", argv[1]);
        return;
    }

    /* Read in each array. */
    pa = matGetNextVariable(pmat, &name);
    while (pa!=NULL)
    {
        /*
        * Diagnose array pa
        */
        printf("\nArray %s has %d dimensions.", name, 
               mxGetNumberOfDimensions(pa));

        //print matrix elements
        printf("\ndata %d",pa);

        //get next variable
        pa = matGetNextVariable(pmat,&name);

        //printf("\ndata %d",pa);
        //destroy allocated matrix
        mxDestroyArray(pa);
    }

    matClose(pmat);
}

谢谢。

再次进行大量搜索后,我找到了答案。被问者已经有人问过,只是方式不同,下面是link的回答。我希望它可以帮助别人。 Matlab API reading .mat file from c++, using STL container