文档介绍:第五讲 Matlab程序设计〔2)
通信与信息工程学院
2012~2013学年冬季学期
2022/6/1
1
MATLAB作为一种高级语言,它不仅能以一种人机交互式的命令行的方式工作,还可以像BASIC、FORTRAN、C等其他序"
#include ""
void myplus<double y[],double x[],double z[]>
{
y[0]=x[0]+z[0];
}
2022/6/1
10
"接口子程序"
void mexFunction<int nlhs,mxArray *plhs[],
int nrhs,const mxArray *prhs[]>
{
double *x,*y,*z;
int mrows0,ncols0;
int mrows1,ncols1;
……………
}
2022/6/1
11
mex
a=;b=;
c=exm<a,b>
c =
2022/6/1
12
3、matlab引擎技术
Matlab引擎库函数可使用户在自编的应用程序中方便地实现对matlab的调用.
用户自编的界面运行在前台,而matlab作为计算引擎运行在后台.
引擎函数本身用C或Fortran编写.
Matlab在其它语言编制的程序中被当作数学库程序调用,充分利用matlab指令简单、计算可靠的优点,大大节省用户的开发时间.
2022/6/1
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;}
…………………
2022/6/1
14
mex -f D:\MATLAB6p5\bin\win32\mexopts\
.
2022/6/1
15
4、Matlab中ActiveX技术
,开发商和终端用户就能把来自不同商家的ActiveX组建无缝地集成在自己的应用程序中,.
Matlab支持两种ActiveX技术: ActiveX控件封装集成和ActiveX自动化.
ActiveX控件是指那些可视、 Explorer和Web Browser Control.
2022/6/1
16
,,表现为自动化客户.
matlab自动化服务器的功能包括:在matlab空间中执行命令;与matlab空间直接交换数据.
matlab自动化客户的功能仅是matlab ActiveX控件封装集成功能的子集.
2022/6/1
17
2022/6/1
18
2022/6/1
19
2022/6/1
20
2022/6/1
21
八、M文件调试
编写M文件时,:语法错误和运行错误.
语法错误是指变量名、函数名等的误写,,终止执行,并给出相应的错误原因以及所在行号.
运行错误是算法本身引起的,相对语法错误而言运行错误较难处理.
2022/6/1
22
1、运行错误来源于算法模型与期望目标是否一致,程序模型是否与算法一致,涉及用户对期望目标原理的理解、对算法的理解,还涉及用户对matlab指令的理解,对程序流的理解,对matlab工作机理的理解.
2、运行错误的表现形态较多,程序正常运行,但结果错误;程序不能正常运行而中断等.
3、