C++读写.mat文件的方法
本文导语: 最近在编写C++程序的过程中,需要使用matlab生成的.mat文件,于是查找了基本使用方法。 我的计算机环境是win7 64位系统,VS2010,matlab R2010b。 一、工程配置: 1.VC++目录->包含目录 添加: MATLABR2010bexterninclude MATLABR2010bextern...
最近在编写C++程序的过程中,需要使用matlab生成的.mat文件,于是查找了基本使用方法。
我的计算机环境是win7 64位系统,VS2010,matlab R2010b。
一、工程配置:
1.VC++目录->包含目录 添加:
MATLABR2010bexterninclude
MATLABR2010bexternincludewin64
->库目录 添加:
MATLABR2010bexternlibwin64microsoft
MATLABR2010bexternlibwin32microsoft
2.C/C++->常规->附加包含目录 添加:
MATLABR2010bexterninclude
MATLABR2010bexternincludewin64
3.链接器->输入->附加依赖库 添加:
libmat.lib
libmx.lib
libmex.lib
libeng.lib
由于所安装的matlab为64位,要调用其函数,需要将工程转换为X64
4.顶菜单->生成->配置管理器->平台:X64
5.链接器->高级->目标计算机:
MachineX64(/MACHINE:X64)
6.计算机环境变量->path 添加:
E:DevToolsMATLABR2010bexternlibwin64microsoft;
E:DevToolsMATLABR2010bbinwin64;
二、所用到的基本读取写入mat文件代码示例:
首先需要包含头文件:
#include
[cpp] view plaincopy
MATFile *pmatFile = NULL;
mxArray *pMxArray = NULL;
// 读取.mat文件(例:mat文件名为"initUrban.mat",其中包含"initA")
double *initA;
pmatFile = matOpen("initUrban.mat","r");
pMxArray = matGetVariable(pmatFile, "initA");
initA = (double*) mxGetData(pMxArray);
M = mxGetM(pMxArray);
N = mxGetN(pMxArray);
Matrix A(M,N);
for (int i=0; i