vc中调用matlab的合集

vc中调用matlab的合集

ID:11598681

大小:54.50 KB

页数:10页

时间:2018-07-12

vc中调用matlab的合集_第1页
vc中调用matlab的合集_第2页
vc中调用matlab的合集_第3页
vc中调用matlab的合集_第4页
vc中调用matlab的合集_第5页
资源描述:

《vc中调用matlab的合集》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、vc里调用matlab[zz]在vc里调用matlab的mat文件或调用它的引擎,首先需要在TOOLS->options->directories->includefiles和libraryfiles里包含:c:MATLABEXTERNINCLUDE和c:MATLABEXTERNLIBWIN32MICROSOFTMSVC601.如果只调用mat数据文件,那么在工程里需要包含头文件mat.h在Project->settings->link->object/librarymodules里添加libmx.liblibmat.lib实例:

2、1)将vc里的一个数组y[4][12],写到一个mat文件里。MATFile*mfp;//mat文件指针mxArray*A_ptr;//矩阵指针double*A;//打开一个test.mat文件,只写,(如果不存在就新建,否则删除重建)mfp=matOpen("d:\Programes\matlab\work\test.mat","w");//新建一个12*4的矩阵只有实部(在matlab里矩阵都是复矩阵)A_ptr=mxCreateDoubleMatrix(12,4,mxREAL);//让指针A指向这个矩阵A=mxGetPr(A_pt

3、r);//将y的值传给该矩阵(A[i],i代表A所指向的矩阵的第i个元素。在VC里数组是按行排放的,在matlab里矩阵是按列排放的,)for(inti=0;i<4;i++)for(intj=0;j<12;j++)A[i*12+j]=y[i][j];//将矩阵写到文件test内,起名为xmatPutVariable(mfp,"x",A_ptr);//关闭文件matClose(mfp);//释放矩阵空间mxDestroyArray(A_ptr);实例:2)将一个mat文件,读到vc里的一个数组y[4][12]。MATFile*mfp;mxArra

4、y*A_ptr;double*A;mfp=matOpen("d:\Programes\matlab\work\test.mat","r");//如果既要读又要写就用"u"if(mfp==NULL)return;A_ptr=matGetVariable(mfp,"x",);A=mxGetPr(A_ptr);for(inti=0;i<4;i++)for(intj=0;j<12;j++)y[i][j]=A[i*12+j];matClose(mfp);mxDestroyArray(A_ptr);2.如果要调用它的引擎,那么在工程里需要包含头文件

5、engine.h在Project->settings->link->object/librarymodules里添加libmx.liblibmat.liblibeng.lib实例://将刚才y数组的一行画出来Engine*ep;mxArray*A_ptr;double*A;A_ptr=mxCreateDoubleMatrix(12,1,mxREAL);A=mxGetPr(A_ptr);//打开matlab引擎ep=engOpen("D:\Programes\matlab\bin\win32\matlab");for(intj=0;j<

6、12;j++)A[j]=y[0][j];//将矩阵A_ptr起名为y放进matlab的数据区engPutVariable(ep,"y",A_ptr);//用指令x=0:1:11新建一个x矩阵//函数engEvalString(Engine*ep,char*string)里的参数string就相当于在matlab的命令窗口里打的命令。engEvalString(ep,"x=0:1:11");//调用plot(x,y)画图engEvalString(ep,"plot(x,y)");mxDestroyArray(A_ptr);//关闭引擎,如果后面的

7、程序继续要用就不用关了engClose(ep);上面所用到的函数都可以在MATLABEXTERNINCLUDE\mat.h和engine.h里看到其声明4 VC++环境下的Matlab开发    从上面的转换可以看出,利用Matlab编译器命令生成的C/C++文件,实际上其函数的输入输出参数为mwArray对象。那么可以考虑直接在VC++或其它C++编译器中利用Matlab的库函数来完成简单计算任务。    Matlab C/C++数学函数库中最基本的数据类型为矩阵对象,即mwArray类对象,几乎所有的库函数均以它们作为计算和处理的对象

8、,掌握mwArray对象的操作,对于学习Matlab C/C++数学库的使用是至关重要的。    Matlab C/C++数学库通过类mwArray对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。