📄 test.cpp
字号:
#include "iostream.h"
#include "engine.h"
#include "string.h"
void main()
{ int i,j;
//定义matlab引擎指针及变量
Engine *ep;
mxArray *T,*F;
//定义矩阵数组
double data[3][3]={{11.2,20.5,12.3},{10.8,10.79,10.88},{12.16,9.8,11.5}};
double fdata[3][3];
cout<<"原矩阵为:"<<endl;
for( i=0;i<3;i++)
{ for( j=0;j<3;j++)
{ cout<<data[i][j]<<" ";}
cout<<endl;
}
//产生引擎变量
ep=engOpen(NULL);
if(ep==NULL)
{cout<<"can't open matlab engine";
exit(EXIT_FAILURE);
}
T=mxCreateDoubleMatrix(3,3,mxREAL);
F=mxCreateDoubleMatrix(3,3,mxREAL);
if(T==NULL||F==NULL)
{
cout<<"can't create mxArray"<<endl;
exit(EXIT_FAILURE);
}
memcpy((void*)mxGetPr(T),(void*)data,sizeof(data));
int status=engPutVariable(ep,"T1",T);
//status=engPutVariable(ep,"F",F);
if(status!=0)
{
cout<<"Error using matPutVariable"<<endl;
exit(EXIT_FAILURE);
}
//engPutArray(ep,T);
//engEvalString(ep,"F=[1,3,5,2];");
status= engEvalString(ep,"C=inv(T1)");
if(status!=0)
{
cout<<"Error excute matlab command! "<<endl;
exit(EXIT_FAILURE);
}
//engEvalString(ep,"T=2+3");
//engEvalString(ep,"D=0:1023");
//engEvalString(ep,"plot(D,F)");
F=engGetVariable(ep,"C");//从matlab ep空间中读入maArray类型的数组
/*double *p=mxGetPr(F);
if(p==NULL)
{cout<<"can't get result!"<<endl;
exit(EXIT_FAILURE);}
memcpy((void*)fdata,(void*)p,sizeof(fdata));
*/
memcpy((void*)fdata,(void*)mxGetPr(F),sizeof(fdata));
//*****************************
// int const *p=mxGetDimensions(T);
//cout<<p[0]<<" "<<p[1];
//****************************
mxDestroyArray(T);
mxDestroyArray(F);
engClose(ep);
cout<<"逆矩阵为:"<<endl;
for( i=0;i<3;i++)
{ for( j=0;j<3;j++)
{ cout<<fdata[i][j]<<" ";}
cout<<endl;
} // engPutArray(ep,T);
//mxSetName();//(T,"T");
// matPutVariable(T,"T");
}
/*
Engine *ep;
mxArray *T;
eg=engOpen("\0");
//创建数组存放数据
//T=mxCreateDoubleMatrix(1,1024,mxREAL);
mxSetName(T,"T");
memcpy((void*)mxGetPr(T),(void*)pSampleData,sizeof(pSampleData));
//将T写入Matlab工作区,进行FFT变换
engPutArray(ep,T);
engEvalString(ep,"F=abs(fft(T)/512);");
//绘图图形
engEvalString(ep,"D=0:1023");
engEvalString(ep,"plot(D,F);");
mxDestroyArray(T);
engEvalString(ep,"close;")'
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -