1 / 47
文档名称:

[计算机软件及应用]matlab5 程序设计课件.ppt

格式:ppt   大小:1,195KB   页数:47页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

[计算机软件及应用]matlab5 程序设计课件.ppt

上传人:gxngqvk 2022/8/4 文件大小:1.17 MB

下载得到文件列表

[计算机软件及应用]matlab5 程序设计课件.ppt

文档介绍

文档介绍:第五讲 Matlab程序设计(2)
通信与信息工程学院
2012~2013学年冬季学期
第1页,共47页。
2022/8/10
1
MATLAB作为一种高级语言,它不仅能以一种人机交互式的命令行的方式工作,还可以像BASI以分成两个程序,也可以共写在同一个程序中。
第9页,共47页。
2022/8/10
9
列出具有实现两个双精度实数标量加法的C++ MEX源码程序;对C++ MEX源码程序进行编译链接;在MATLAB中调用生成的DLL文件。

“计算子程序”
#include ""
void myplus(double y[],double x[],double z[])
{
y[0]=x[0]+z[0];
}
第10页,共47页。
2022/8/10
10
“接口子程序”
void mexFunction(int nlhs,mxArray *plhs[],
int nrhs,const mxArray *prhs[])
{
double *x,*y,*z;
int mrows0,ncols0;
int mrows1,ncols1;
……………
}
第11页,共47页。
2022/8/10
11
mex
a=;b=;
c=exm(a,b)
c =

第12页,共47页。
2022/8/10
12
3、matlab引擎技术
Matlab引擎库函数可使用户在自编的应用程序中方便地实现对matlab的调用。
用户自编的界面运行在前台,而matlab作为计算引擎运行在后台。
引擎函数本身用C或Fortran编写。
Matlab在其它语言编制的程序中被当作数学库程序调用,充分利用matlab指令简单、计算可靠的优点,大大节省用户的开发时间。
第13页,共47页。
2022/8/10
13
用C语言编写调用MATLAB引擎计算三次多项式根的源程序。

#include ""
 int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
{
Engine *ep;
mxArray *P=NULL,*r=NULL;
char buffer[301];
double poly[4]={1,0,-2,5};
if (!(ep=engOpen(NULL))) {
fprintf(stderr,"\nCan't start MATLAB engine\n");
return EXIT_FAILURE;}
…………………
第14页,共47页。
2022/8/10
14
mex -f D:\MATLAB6p5\bin\win32\mexopts\

第15页,共47页。
2022/8/10
15
4、Matlab中ActiveX技术
ActiveX技术是各种面向对象技术的集合。借助ActiveX技术,开发商和终端用户就能把来自不同商家的ActiveX组建无缝地集成在自己的应用程序中,从而完成特定的目的。避免低水平的重复开发。
Matlab支持两种ActiveX技术: ActiveX控件封装集成和ActiveX自动化。
ActiveX控件是指那些可视、可编程的集成于ActiveX容器的应用组件。最常见有Internet Explorer和Web Browser Control。
第16页,共47页。
2022/8/10
16
ActiveX自动化使matlab能施控和受控于其它组件。当matlab受控于其它组件时,表现为自动化服务器。当matlab控制其它组件时,表现为自动化客户。
matlab自动化服务器的功能包括:在matlab空间中执行命令;与matlab空间直接交换数据。
matlab自动化客户的功能仅是matlab ActiveX控件封装集成功能的子集。
第17页,共47页。
2022/8/10
17
第18页,共47页。
2022/8/10
18
第19页,共47页。
2022/8/10
19
第20页,共47页。
2022/8/10
20
第21页,共47页。
2022/8/10
21
八、M文件调试
编写M文件