C++创建和调用MATALB的MAT文件
所用软硬件平台:VS2008 sp1 matlab 2009b ,32位PC,XP系统
所用程序
//创建一个.mat文件,并在里面存储一个double型变量,并赋值初值
#include
#include/* For strcmp() */
#include/* For EXIT_FAILURE, EXIT_SUCCESS */
#include"mat.h"
using namespace std;
int main()
{
mxArray *pa1;
double data[1]={3.141592653};
MATFile *pmat;//定义一个MAT文件指针
const char*file="VS_MAT.mat";
cout<
pmat=matOpen(file,"w");//打开或创建一个MAT文件
if(pmat==NULL)
{
cout<
return(EXIT_FAILURE);
}
pa1=mxCreateDoubleMatrix(1,1,mxREAL);//mxREAL表示创建一个实数的*1的array
if(pa1==NULL)
{
cout<
return(EXIT_FAILURE);
}
//初始化变量pa1;向MAT文件中写入变量pa1,并命名为a;
memcpy( (void*)(mxGetPr(pa1)),(void*)data,sizeof(data));//mxGetPr与mxGetPi分别是得到double类型
//array的实部指针和虚部指针的API int status;
status=matPutVariable(pmat,"a",pa1);//向MAT文件中写入变量pa1,并命名为a;
if(status!=0)
{
cout<
return(EXIT_FAILURE);
}
//清除矩阵
mxDestroyArray(pa1);