




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章的程序设计和调试现在您浏览到是一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第1页。4.3脚本文件和函数文件4.3.1M脚本文件(一)脚本文件的特点:它只是一串按用户意图排列而成的(包括控制流向指令在内的)MATLAB指令集合脚本文件运行后,所产生的所有变量都驻留在MATLAB基本工作空间(BaseWorkspace)中。只要用户不使用clear指令加以清除,且MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。基本空间将随MATLAB的启动而产生;只有关闭MATLAB时,该基本工作空间才被删除。现在您浏览到是二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第2页。(二)M脚本文件的编写和运行(1)编写M脚本文件的步骤点击MATLAB指令窗工具条上的NewFile图标,就可打开MATLAB文件编辑调试器MATLABEditor/Debugger,其窗口名为untitled,用户即可在空白窗口中编写程序。编辑完程序,点击编辑调试器工具条上的保存图标,在弹出的Windows标准风格的“保存为”对话框中,选择保存文件夹,键入新编文件的文件名,点【保存】键,就完成了文件的保存。(2)运行文件使刚刚保存的文件所在的目录成为当前目录,或让该目录处在MATLAB的搜索路径上。直接在命令窗口键入运行文件的文件名或在编辑器窗口中直接点击工具条上的运行按钮都可运行该M文件。现在您浏览到是三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第3页。4.3.2M函数文件(一)M函数文件的特点从形式上看,与脚本文件不同,函数文件的第一行总是一“function”引导的“函数申明行(FunctionDeclarationline)”。该行还罗列出函数与外界的联系的全部“标称”输入输出宗量。但对“输入输出宗量”的标称数目并没有限制,既可以完全没有输入输出宗量,也可以时任意数目。MATLAB允许使用比“标称数目”较少的输入输出宗量,实现对函数的调用。现在您浏览到是四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第4页。从运行上看,与脚本文件不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间(Contextworkspace)。该空间称之为函数工作空间(Functionworkspace)。所有中间变量都存放在函数工作空间中。当执行完文件最后一条指令时,或遇到return指令,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。函数空间随具体M函数文件的被调用而产生,随调用的结束而删除。函数空间是相对基本空间独立的、临时的。在MATLAB整个运行期间,可以产生任意多个临时函数空间。假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放于那函数空间之中,而不是存放在基本空间。现在您浏览到是五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第5页。4.3.3局部变量和全局变量(1)局部(Local)变量存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围仅限于该函数本身。(2)全局(Global)变量通过global指令,MATLAB也允许几个不同的函数空间以及基本工作空间共享同一个变量。这种被共享的变量称为全局变量。每个希望共享全局变量的函数或MATLAB基本工作空间,必须逐个用global对其具体变量加以专门定义。没采用global定义的函数或基本工作空间,将无权享用全局变量。现在您浏览到是六页,共六十三页。第四章的程序设计和调试全文共63页,当前为第6页。补充说明:如果某个函数的运作使全局变量的内容发生了变化,那么其它函数空间以及基本工作空间中的同名变量也随之变化。除非与全局变量联系的所有工作空间都被删除,否则全局变量依然存在。对全局变量的定义必须在该变量被使用之前进行。建议把全局变量的定义放在函数体的首行位置。虽然MATLAB对全局变量的名字并没有任何特别的限制,但是为了提高M文件的可读性,建议使用大写字符命名全局变量。现在您浏览到是七页,共六十三页。第四章的程序设计和调试全文共63页,当前为第7页。4.3.4M文件的一般结构典型M函数文件的结构如下:函数申明行(Functiondeclarationline):位于函数文件的首行,以MATLAB关键字function开头,函数名以及函数的输入输出宗量都在这一行被定义。H1行(Thefirsthelptextline);紧随函数声明行之后以%号开头的第一注释行。按MATLAB自身文件的规则,H1行包含:大写字体的函数文件名和运用关键词简要描述的函数功能。该H1行供lookfor关键词查询和help在线帮助使用现在您浏览到是八页,共六十三页。第四章的程序设计和调试全文共63页,当前为第8页。在线帮助文本(Helptext)区:H1行及其之后的连续的以%开头的所有注释行构成整个在线帮助文本。它通常包括:函数输入输出宗量的含义;调用格式说明。编写和修改记录:它与在线帮助文本区相隔一个“空”行;也以%开头;标志编写及修改M文件的作者和日期;版本记录。它用作软件档案管理。函数体(Functionbody):为清晰起见,它与前面的注释以“空”行相隔。这部分内容由实现M函数功能的MATLAB指令组成。它接收输入宗量,进行程序流控制,得到输出宗量。其中为阅读、理解方便,也配置适当的空行和注释。若仅从运算的角度看,唯“函数申明行”和“函数体”两部分是构成M函数文件所必不可少的。现在您浏览到是九页,共六十三页。第四章的程序设计和调试全文共63页,当前为第9页。4.3.6子函数和私用函数1.子函数
MATLAB允许一个M函数文件包含多个函数的代码。其中第一个出现的那个函数称为主函数(Primaryfunction),该文件中的其他函数则称为子函数(Subfunction)。保存时所用函数名与主函数定义名相同。外部程序只能对主函数进行调用。现在您浏览到是十页,共六十三页。第四章的程序设计和调试全文共63页,当前为第10页。子函数的性质:每个子函数的第1行是其自己的函数申明行。在M函数文件内,主函数的位置不可改变,但子函数的排列次序可以任意改变。子函数智能被处于同一文件的主函数或其它其函数调用。在M函数文件中,任何指令通过“名字”对函数进行调用时,子函数的优先级仅次于内装函数。同一文件的主函数、子函数的工作空间都是彼此独立的。各函数间的信息,或通过输入输出变量传递,或通过全局变量传递,或通过跨空间指令传递。help,lookfor等帮助指令都不能提供关于子函数的任何帮助信息。现在您浏览到是十一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第11页。2.私用函数所谓私用函数,是指位于private目录上的M文件函数。它有如下性质:私用函数的构造与普通M函数完全相同。私用函数只能被private直接父目录上的M文件所调用,而不能被其它目录上的任何M文件或MATLAB指令窗中的命令所调用。M文件中,任何指令通过“名字”对函数进行调用时,私用函数的优先级虽低于内装函数和子函数,但高于其它任何目录上的函数。help,lookfor等指令都不能提供关于私用函数的任何帮助信息。现在您浏览到是十二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第12页。4.3.7MATLAB的搜索过程假设MATLAB在一个文件中碰到指令cow时,它将按以下步骤逐步进行检索:(1)检查cow是否一个变量名;如果不是,执行下一步;(2)检查cow是不是内建函数(Built-inFunction);假如不是,执行下一步;(3)检查cow是不是cow所在的M文件中的一个子函数;假如不是,再往下执行(4)检查cow是不是cow所在的M文件中的一个私用函数(先找cow.p,然后是cow.m);假如不是,再往下执行;现在您浏览到是十三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第13页。(5)检查cow是不是当前目录上的文件(先找cow.p,然后是cow.m);假如不是,再往下执行;(6)检查搜索路径上是否有cow存在(先找cow.p,然后是cow.m)。
MATLAB将使用最先找到的那个cow。如果一直找不到cow,MATLAB就给出错误提示信息。现在您浏览到是十四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第14页。4.4MATLAB控制流4.4.1for循环结构for循环结构的语法形式:forx=array(commands)end说明:循环体的执行次数由for指令后面的数组array的列数决定。在for后面的表达式中的数组可以伪任何合法的MATLAB数组。循环结构可以嵌套使用。为了得到高效代码,应尽量提高代码的向量化程度,而避免使用循环结构。为了得到高效代码,在循环指令之前应尽量对数组进行预定义。现在您浏览到是十五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第15页。【例7.3.1-1】一个简单的for循环示例。fori=1:10;x(i)=i;end;x
现在您浏览到是十六页,共六十三页。第四章的程序设计和调试全文共63页,当前为第16页。4.4.2while循环结构while循环结构的语法形式为:whileexpression(commands)End说明:在while和end之间的“组命令”被称为循环体。当MATLAB碰到while指令时,首先检测expression的值,如其值为逻辑真(非0),则执行组命令。当组命令执行完毕,继续检测表达式的值,若表达式值仍为真,循环执行组命令;而一旦表达式值为假时,结束循环。现在您浏览到是十七页,共六十三页。第四章的程序设计和调试全文共63页,当前为第17页。【例7.3.2-1】Fibonacci数组的元素满足Fibonacci规则:,;且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;whilea(i)<=10000 a(i+1)=a(i-1)+a(i); i=i+1;end;ia(i)现在您浏览到是十八页,共六十三页。第四章的程序设计和调试全文共63页,当前为第18页。4.4.3if-else-end分支结构指令形式1:ifexpression(commands)end指令形式2:ifexpression(commands1)else(commands2)end指令形式3:ifexpression1(commands1)elseif(expression2)(commands2)……else(commandsk)end现在您浏览到是十九页,共六十三页。第四章的程序设计和调试全文共63页,当前为第19页。说明:表达式有时由多个逻辑表达式组成,MATLAB将尽可能少的检测子表达式的值。例如,表达式为(子表达式1|表达式2),当MATLAB检测到子表达式1的值为真时,它就认为表达式值为真,而不再对表达式2进行检测。又如表达式1&表达式2)当MATLAB检测到子表达式1的值为假时,它就认为表达式值为假的,从而跳过该结构。if指令判决和break指令的配合使用,可以强制终止for循环或while循环。现在您浏览到是二十页,共六十三页。第四章的程序设计和调试全文共63页,当前为第20页。【例7.3.3-2】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。n=100;a=ones(1,n);fori=3:na(i)=a(i-1)+a(i-2);ifa(i)>=10000a(i),break;end;endi
现在您浏览到是二十一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第21页。4.4.4switch-case结构语法结构:switchexcasetest1(commands1)casetest2……casetestk(commandsk)otherwise(commands)end现在您浏览到是二十二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第22页。说明:switch指令后面的表达式应为一个标量或者为一个字符串。对于标量形式的表达式,比较这样进行:表达式==检测值i。而对于字符串,MATLAB将调用函数strcmp来实现比较:strcmp(表达式,检测值i)。case指令后面的检测值不仅可以为一个标量值或一个字符串,还可以为一个元胞数组。如果一个检测值是一个元胞数组,MATLAB将把表达式的值和该元胞数组中的所有元素进行比较,如果元胞数组中的某个元素和表达式的值相等,MATLAB认为此次比较结果为真,从而执行与该检测值相应的一组命令。现在您浏览到是二十三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第23页。【例7.3.4-1】学生的成绩管理,用来演示switch结构的应用。clear;fori=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c];Name={'Jack','Marry','Peter','Rose','Tom'};Mark={72,83,56,94,100};Rank=cell(1,5);S=struct('Name',Name,'Marks',Mark,'Rank',Rank);fori=1:5switchS(i).Markscase100S(i).Rank='满分';caseaS(i).Rank='优秀';caseb S(i).Rank='良好';casec S(i).Rank='及格';otherwise S(i).Rank='不及格';endenddisp(['学生姓名','得分','等级']);disp('')fori=1:5;disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);end;
现在您浏览到是二十四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第24页。4.4.5try-catch结构语法结构:try(commands1)catch(commands2)end说明:只有当MATLAB在执行组命令1时出现了错误后,组命令2才会被执行。可调用lasterr函数查询出错原因。如果函数lasterr的运行结果为一个空串,则表明组命令1被成功执行了。当执行组命令2时又出错,MATLAB将终止该结构现在您浏览到是二十五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第25页。【例7.3.5-1】try-catch结构应用实例:对魔方阵的行进行援引,当“行下标”超出魔方阵的最大行数时,将改向对最后一行的援引,并显示“出错”警告。clear,N=4;A=magic(3);tryA_N=A(N,:)catchA_end=A(end,:)endlasterr
现在您浏览到是二十六页,共六十三页。第四章的程序设计和调试全文共63页,当前为第26页。4.4.6控制程序流的其它常用指令1.return指令在被调函数中插入了return指令,可以强制MATLAB结束执行该函数并把控制转出。2.input和keyboard(1)input常用格式:v=input(‘message’)%将用户键入的内容赋给变量vv=input(‘message’,’s’)%将用户键入的内容作为字符串赋给变量v现在您浏览到是二十七页,共六十三页。第四章的程序设计和调试全文共63页,当前为第27页。说明:指令中’message’是将显示在屏幕上的字符串,这是必不可少的。对于第一种调用格式,用户可以输入数值、字符串元胞数组等各种形式的数据。对于第二种调用格式,不管键入什么,总以字符串形式赋给变量v。(2)keyboard
当程序遇到keyboard时,MATLAB将“控制权”交给键盘,用户可以从键盘输入各种合法的MATLAB指令,只有当用户使用return指令结束输入后,“控制权”才交还给程序。现在您浏览到是二十八页,共六十三页。第四章的程序设计和调试全文共63页,当前为第28页。4.pause指令pause%暂停执行文件,等待用户键入任意键继续pause(n)%在继续执行之前,暂停n秒5.break指令
break指令导致包含有该指令的while、for指令的终止,不必等待循环的自然结束。现在您浏览到是二十九页,共六十三页。第四章的程序设计和调试全文共63页,当前为第29页。6.error和warning指令error(‘message’)%显示出错信息message,终止程序。errortrap%错误发生后,程序继续执行与否分双位开关。lasterr%显示MATLAB自动判断的最新出错原因,并终止程序。warning(‘message’)%显示警告信息message,程序继续执行。lastwarn%显示MATLAB自动给出的最新警告,程序继续运行。现在您浏览到是三十页,共六十三页。第四章的程序设计和调试全文共63页,当前为第30页。4.5变量的检测传递和限权使用函数4.5.1输入输出宗量检测函数nargin%在函数体内用于获取实际输入宗量;nargout%在函数体内用于获取实际输出宗量;nargin(‘fun’)%获取’fun’指定函数的标称输入宗量数;nargout(‘fun’)%获取’fun’指定函数的标称输出宗量数;inputname(n)%在函数体内使用,给出第n各输入宗量的实际调用变量名现在您浏览到是三十一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第31页。4.5.2“变长度”输入输出宗量varargin%“变长度”输入宗量列表varargout%“变长度”输出宗量列表说明:编写M函数文件时,函数申明行中的“变长度”宗量必须被放置在“普通”宗量之后在编写M函数文件时,varargin的长度随分配到的输入变量数而变;现在您浏览到是三十二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第32页。varargin,varargout的工作机理varargin本身是个元胞数组;M函数文件被调用时,函数输入变量的分配原则是:首先,输入变量依先后次序逐个对应分配给M函数文件输入宗量列表中那些被明确定义的“普通”输入宗量;然后,把剩余的输入变量一次逐个分配到varargin元胞数组的元胞中。因此varargin元胞数组的长度取决于分配到的输入变量数。所谓“变长度”,就是指:varargin的长度随分配到的输入变量数而变。现在您浏览到是三十三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第33页。【例7.5.2-1】变长度宗量使用示例。[exm07052_1.m]functionvarargout=exm07052_1(r,varargin)vin=length(varargin);Nin=vin+1; error(nargchk(1,Nin,nargin)) ifnargout>6 error('Toomanyoutputarguments')endt=0:pi/20:2*pi;x=r*exp(i*t);s=pi*r*r;现在您浏览到是三十四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第34页。ifnargout==0switchNincase1plot(x,'b')case2r2=varargin{1}; x2=r2*exp(i*t);plot(x,'b');holdon;plot(x2,'b');holdoffotherwiser2=varargin{1}; x2=r2*exp(i*t);plot(x,varargin{2:end});holdon plot(x2,varargin{2:end});holdoff end;axis('square')现在您浏览到是三十五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第35页。elsevarargout{1}=real(x);varargout{2}=imag(x); varargout{5}=pi*r*r;varargout{6}=[]; ifNin>1r2=varargin{1}; x2=r2*exp(i*t);varargout{3}=real(x2);varargout{4}=imag(x2);varargout{6}=pi*(r^2-r2^2); end;end现在您浏览到是三十六页,共六十三页。第四章的程序设计和调试全文共63页,当前为第36页。r1=1;r2=3;[x1,y1,x2,y2,s1,s2]=exm07052_1(r1);[x1,y1,x2,y2]=exm07052_1(r1,r2);[x1,y1,x2,y2,s1,s2]=exm07052_1(r1,r2);r1=1;r2=0.6;subplot(1,3,1),exm07052_1(r1,r2),subplot(1,3,2),exm07052_1(r1,r2,'Marker','o')subplot(1,3,3),exm07052_1(r1,r2,'LineWidth',5,'Color',[10.40])
现在您浏览到是三十七页,共六十三页。第四章的程序设计和调试全文共63页,当前为第37页。4.5.3跨空间变量传递1.跨空间计算串表达式的值evalin(‘workspace’,’expression’)%跨空间计算串表达式值evalin(‘workspace’,’expression1’,’expression2’)%跨空间计算替代串表达式值说明:‘workspace’可取两个值:‘base’和‘caller’。第一种调用格式的执行机理当‘workspace’取‘base’时,表示计算eval(‘expression’)时,将从基本工作空间中获得变量值现在您浏览到是三十八页,共六十三页。第四章的程序设计和调试全文共63页,当前为第38页。当‘workspace’取‘caller’时,表示计算eval(‘expression’)时,将从主调函数工作空间获得变量值。主调函数是相对被调函数而言的。这里被调函数是指evalin所在的函数。第二种调用格式的执行机理是:先从所在函数空间获取变量值,用eval(‘expression1’)计算原串表达式;如若该计算失败,则再从‘workspace’指定的(基本或主调函数)工作空间获取变量值,再通过eval(‘expression2’)计算替代串表达式。现在您浏览到是三十九页,共六十三页。第四章的程序设计和调试全文共63页,当前为第39页。【例-1】本例演示:(A)编写绘制正多边形或圆的程序。(B)子函数与(母)函数的关系。(C)各种不同的工作空间。(D)evalin运行机理与eval的异同。(1)[exm070531_1.m]functiony1=exm070531_1(a,s)t=(0:a)/a*2*pi;y1=subevalinzzy(4,s);%------------subfunction-------------functiony2=subevalinzzy(a,s)t=(0:a)/a*2*pi;ss='a*exp(i*t)';switchscase{'base','caller'}y2=evalin(s,ss);case'self'y2=eval(ss);end现在您浏览到是四十页,共六十三页。第四章的程序设计和调试全文共63页,当前为第40页。(2)clear,a=30;t=(0:a)/a*2*pi;sss={'base','caller','self'};fork=1:3 y0=exm070531_1(8,sss{k}); subplot(1,3,k) plot(real(y0),imag(y0),'r','LineWidth',3),axissquareimageend
现在您浏览到是四十一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第41页。2.跨空间赋值assignin(‘workspace’,’VN’,X)%跨空间向VN变量赋值【例-1】assignin运作机理示范。[EXM070532_1.M]functiony=exm070532_1(x)y=sqrt(x);t=x^2;assignin('base','yy',t)clear;x=4;y=exm070532_1(x);disp([blanks(5),'x',blanks(5),'y',blanks(4),'yy']disp([x,y,yy])
现在您浏览到是四十二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第42页。4.6串演算函数4.6.1evaly=eval(‘CEM’)%执行CEM指定的计算y=eval(‘CEM1’,‘CEM1’)%执行CEM1指定的计算,如果出错,就执行CEM2[y1,y2,…]=eval(‘CEM’)%执行对CEM代表的函数文件调用,并输出计算结果现在您浏览到是四十三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第43页。说明:Eval指令的输入宗量必须是字符串构成字符串的CEM,可以是MATLAB任何合法的指令、表达式、语句或M文件名。第3种格式中的CEM只能是(包含输入宗量在内的)M函数文件名。现在您浏览到是四十四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第44页。【例7.6.1-1】计算“表达式”串,产生向量值。clear,t=pi;cem='[t/2,t*2,sin(t)]';y=eval(cem)
现在您浏览到是四十五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第45页。【例7.6.1-2】计算“语句”串,创建变量。clear,t=pi;eval('theta=t/2,y=sin(theta)');who现在您浏览到是四十六页,共六十三页。第四章的程序设计和调试全文共63页,当前为第46页。【例7.6.1-3】计算“替代”串。A=ones(2,1);B=ones(1,3);c=eval('B*A','A*B'),errmessage=lasterr
现在您浏览到是四十七页,共六十三页。第四章的程序设计和调试全文共63页,当前为第47页。【例7.6.1-4】计算“合成”串。CEM={'cos','sin','tan'};fork=1:3 theta=pi*k/12; y(1,k)=eval([CEM{1},'(',num2str(theta),')']);endy
现在您浏览到是四十八页,共六十三页。第四章的程序设计和调试全文共63页,当前为第48页。4.6.2feval[y1,y2,…]=feval(‘FN’,arg1,arg2,…)%用参量arg1,arg2等执行函数指定的计算说明:‘FN’只能是函数名在既可以使用eval,又可以使用feval的情况下,feval运行效率更高。现在您浏览到是四十九页,共六十三页。第四章的程序设计和调试全文共63页,当前为第49页。【例7.6.2-1】feval和eval运行区别之一:feval的FN绝对不能是表达式。x=pi/4;Ve=eval('1+sin(x)')Vf=feval('1+sin(x)',x)
现在您浏览到是五十页,共六十三页。第四章的程序设计和调试全文共63页,当前为第50页。【例7.6.2-2】feval和eval调用区别:feval的FN只接受函数名。本例两种方法以后者为好。A=rand(2,2);[ue,de,ve]=eval('svd(A)');disp('Resultsbyeval');disp([ue,de,ve]);disp(blanks(1))[uf,df,vf]=feval('svd',A);disp('Resultsbyfeval');disp([uf,df,vf])现在您浏览到是五十一页,共六十三页。第四章的程序设计和调试全文共63页,当前为第51页。内容总结第四章的程序设计和调试。通过global指令,MATLAB也允许几个不同的函数空间以及基本工作空间共享同一个变量。除非与全局变量联系的所有工作空间都被删除,否则全局变量依然存在。紧随函数声明行之后以%号开头的第一注释行。help,lookfor等帮助指令都不能提供关于子函数的任何帮助信息。switch指令后面的表达式应为一个标量或者为一个字符串。c=[d,c]。A_N=A(N,:)。指令窗观察法现在您浏览到是五十二页,共六十三页。第四章的程序设计和调试全文共63页,当前为第52页。4.6.3内联函数1.内联函数的创建inline(‘CE’)%把串表达式转化为输入宗量自动生成的内联函数inline(‘CE’,arg1,arg2,…)%把串表达式转化为arg1,arg2等指定输入宗量的内联函数inline(‘CE’,n)%把串表达式转化为x,P1,P2,…Pn等指定输入宗量的内联函数现在您浏览到是五十三页,共六十三页。第四章的程序设计和调试全文共63页,当前为第53页。说明:‘CE’是字符串;CE必须不包含赋值号“=”的表达式。第1种调用格式将自动地对CE进行辨识,把CE中由字母/数字组成的连续字符认做变量,除“预定义变量名(如i,j,pi)”和“常用函数名(如sin,svd)”以外的由字母/数字组成的连续字符将被认做变量。但注意:若连续字符后紧接“左圆括号”,那么将不被当作输入宗量。如x(1),就不会认做输入宗量处理。第2中调用格式是创建内联函数最稳妥、可靠途径。输入宗量字符可表达得更自如。第三种调用格式最简练,但对输入输出宗量的字符限制严格。输入宗量字符只能是x,P1,…Pn等。注意:P是大写字母。现在您浏览到是五十四页,共六十三页。第四章的程序设计和调试全文共63页,当前为第54页。2.涉及内联函数性质的指令class(inline_fun)%给出内联函数的类型char(inline_fun)%给出内联函数计算公式argnames(inline_fun)%给出内联函数的输入宗量vectorize(inline_fun)%使内联函数适用“数组运算”规则现在您浏览到是五十五页,共六十三页。第四章的程序设计和调试全文共63页,当前为第55页。【例-1】演示:内联函数的第一种创建格式;使内联函数适于“数组运算”。clear,F1=inline('sin(rho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗卫生行业员工出生日期及工作经历证明(8篇)
- 克服困难的议论文作文9篇范文
- 现代服务管理实践与理论知识卷
- 活动安排统计表(适合活动数据记录)
- 汽车销售与服务行业市场调研方法
- 农民合作社与物流企业合作协议
- 健康管理模式与疾病预防体系构建
- 法律基础民商法实务模拟题集
- 桃花源记:理想社会与现实意义探究教学教案
- 农副产品采购与销售合作契约
- 2025年合肥城建发展股份有限公司及所属子公司招聘17人(二批次)笔试参考题库附带答案详解
- 【上料机械手结构中的真空系统的设计计算案例1100字】
- 西方美术史试题及答案
- 【7历期末】安徽省合肥市包河区2023-2024学年部编版七年级下学期期末历史试卷
- 国家开放大学本科《理工英语4》一平台机考第五大题写作题总题库
- 如何审议预算及其报告新演示文稿
- 融资并购项目财务顾问协议卖方大股东为个人模版
- 文化差异与跨文化交际课件(完整版)
- ISO2768-1中文版公差表
- 路基交验具体要求(共5页)
- 粉煤灰对土壤和作物生长的影响
评论
0/150
提交评论