预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

三种方式在C++中调用matlab C/C++调用Matlab 在工程实践中,C/C++调用Matlab的方法主要有调用Matlab计算引擎、包含m文件转换的C/C++文件,以及调用m文件生成的DLL文件。 1利用Matlab计算引擎 Matlab的引擎库为用户提供了一些接口函数,利用这些接口函数,用户在自己的程序中以计算引擎方式调用Matlab文件。该方法采用客户机/HYPERLINK"http://www.dzsc.com/product/searchfile/5368.html"\t"_blank"服务器的方式,利用Matlab引擎将Matlab和C/C++联系起来。在实际应用中,C/C++程序为客户机,Matlab作为本地服务器。 C/C++程序向Matlab计算引擎传递命令和数据信息,并从Matlab计算引擎接收数据信息。 Matlab提供了以下几个C语言计算引擎访问函数供用户使用:engOpen,engClose,engGetVariable,engPutVariable,engEvalString,engOutputBuffer,engOpenSingleUse,engGetVisible,engSetVisible。 下面以C语言编写的、调用Matlab引擎计算方程x3?2x+5=0根的源程序example2.c为例,说明C/C++调用Matlab计算引擎编程的原理和步骤: #include<windows.h>#include<stdlib.h> #include<stdio.h>#include"engine.h" intPASCALWinMain(HANDLEhInstance,HANDLEhPrevInstance, LPSTRlpszCmdLine,intnCmdShow) {Engine*ep;mxArray*P=HYPERLINK"http://www.dzsc.com/stock_NUL/NULL.html"\t"_blank"NULL,*r=NULL; charbuffer[301];doublepoly[4]={1,0,-2,5}; if(!(ep=engOpen(NULL))) {fprintf(stderr,"\nCan'tHYPERLINK"http://www.dzsc.com/stock/S/START.html"\t"_blank"startMATLABengine\n");returnEXIT_FAILURE;} P=mxCreateDoubleMatrix(1,4,mxREAL);mxSetClassName(P,"p"); memcpy((char*)mxGetPr(P),(char*)poly,4*sizeof(double)); engPutVariable(ep,P);engOutputBuffer(ep,buffer,300); engEvalString(ep,"disp(['多项式',poly2str(p,'x'),'的根']),r=roots(p)"); MessageBox(NULL,buffer,"example2展示MATLAB引擎的应用",MB_OK); engClose(ep);mxDestroyArray(P);returnEXIT_SUCCESS;} 在Matlab下运行example2.exe:mex-fexample2.c。运行结果如图1所示: 利用计算引擎调用Matlab的特点是:节省大量的系统资源,应用程序整体性能较好,但不能脱离Matlab的环境运行,且运行速度较慢,但在一些特别的应用[9](例如需要进行三维图形显示)时可考虑使用。 2利用mcc编译器生成的cpp和hpp文件 Matlab自带的C++Complier--mcc,能将m文件转换为C/C++代码。因此,它为C/C++程序调用m文件提供了另一种便捷的方法。下面举例说明相应步骤: a.新建example3.m:functiony=exmaple3(n)y=0;fori=1:ny=y+i;end 保存后在命令窗口中输入:mcc-t-LCpp-hexample3. 则在工作目录下生成example3.cpp和example3.hpp两个文件。 b.在VC中新建一个基于对话框的MFC应用程序HYPERLINK"http://www.dzsc.com/stock-ic/TEST2.html"\t"_blank"Test2,添加一个按钮,并添加按钮响应函数,函数内容见f步。将上面生成的两个文件拷贝到VC工程的Test2目录下。 c.在VC中选择:工程->设置,选择属性表HYPERLINK"http://www.dzsc.com/stock-ic/LINK.h