由于项目中用到了这个知识点:在MFC中读取.mat文件中矩阵变量的任意位置的数据,今天折腾了一下,觉得还是挺有意思的。因此就写了这篇博客。
在C++与Matlab混合编程中,经常会遇到将Matlab中返回的mxArray* 类型指针指向的数据读取出来。例如,matlab函数所返回的是一个如下的矩阵数据并保存在一个.mat文件中,但是在C++中应该如何读取出来呢??
在MFC中可以用如下代码读取.mat文件中的“output_rule”变量
MATFile * pmatFile = matOpen(PublicData::attribute+_T("\\OUTPUT\\OUTPUT.mat"),"r"); //第一个参数为.mat文件的地址
mxArray * output_rule = matGetVariable(pmatFile, "output_rule");
当我们用如上的两行代码后,就得到了一个指向矩阵数据类型的mxArray *指针,当用了此指针后,又该如何的获取该矩阵类型的任意位置的数据呢??
代码如下: