欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MATLAB第五讲MATLAB程序语言设计1246.ppt

    • 资源ID:2975145       资源大小:1.21MB        全文页数:74页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB第五讲MATLAB程序语言设计1246.ppt

    MATLAB程序语言设计,翟懿奎五邑大学信息学院2012年,第五讲 MATLAB 语言程序设计,5.1 MATLAB语言的函数的基本结构5.2 MATLAB语言的程序流程语句5.3 全局、局部变量、子函数与私有目录5.4 MATLAB 函数的跟踪调试5.5 MATLAB工具箱编写技巧5.6 MATLAB中新的数据结构5.7 MATLAB 语言编程技巧5.8 上机练习,5.1 MATLAB 语言函数的基本结构,MATLAB语言提供了两种源程序文件格式,M脚本文件:它实际上是MATLAB命令窗中一系列命令的组合,它没有输入输出参数传递的过程,它直接对工作区中的变量进行处理操作。,M函数:这是MATLAB程序设计的主流,它可以传递参数及返回结果,我们主要介绍M函数的编写方法与技巧。,M脚本文件:,MATLAB允许使用比“标称数目”较少的输入输出变量,实现对函数的调用。函数空间随具体M函数文件的被调用而产生,随调用结束而删除。函数空间是相对独立的、临时的。在MATLAB整个运行期间,可以产生任意多个临时函数空间。假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量都存放于该函数空间之中,而不是存放在基本空间。,M文件的建立与编辑,1.建立新的M文件(1)菜单操作:MATLAB命令窗口的File菜单 New菜单项 M-file命令。(2)命令操作:在MATLAB命令窗口输入命令edit。(3)命令按钮操作:单击MATLAB命令窗口工具栏上的“新建”命令按钮。2.编辑已有的M文件,例:建立一个命令文件将变量a,b的值互换,然后运行该命令文件。首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;a b 然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。,例:建立fibonnaci.m文件,其内容如下:%计算Fibonnaci数clear;f(1)=1;f(2)=1;for n=1:1:8 f(n+2)=f(n)+f(n+1);endf,5.1 MATLAB 语言函数的基本结构,M函数是由 function 语句引导的,其基本格式如下,function 返回变量列表函数名(输入变量列表)由该符号引导的注释语句段,在MATLAB命令窗中用命令 help 函数名 所得到的帮助就是这段文字。输入、返回变量格式的检测函数体语句,只要进入该函数,MATLAB就自动生成 nargin 和 nargout 两个变量,分别表示输入变量和输出变量的个数。程序中可以根据这两个变量的值来判断用户输入参数的情况。,5.1 MATLAB 语言函数的基本结构,M函数典型例子,function magout,phase,w=bode(a,b,c,d,iu,w)%BODE Bode frequency response of LTI models.%BODE(SYS)draws the Bode plot of the LTI model SYS(created with%either TF,ZPK,SS,or FRD).The frequency range and number of%points are chosen automatically.%See also BODEMAG,NICHOLS,NYQUIST,SIGMAni=nargin;no=nargout;.%end bode,5.1 MATLAB 语言函数的基本结构,说明,注释符号引导的内容不能含空行,否则,后续的内容不能由 help 命令看到,大部分作者及版权信息都是空行后的注释内容。,当返回变量只有一个时,不用方框号括起来。,函数名与该函数存盘用的文件名要一样,否则MATLAB寻找的是文件名符合的函数,而且老版本的MATLAB不能用超过8个字符的函数名。,5.1 MATLAB 语言函数的基本结构,说明(续),可以用 type 函数名 来看函数文件的内容。,可以用 edit 函数名 来查看或编辑函数文件。,为了使得MATLAB认识该函数,要将该函数所在的目录用cd 命令设为当前目录,或用命令addpath添加到MATLAB的路径中去(也可以用MATLAB菜单下的PATH命令)。,例:建立fibonnaci.m文件,其内容如下:%计算Fibonnaci数clear;f(1)=1;f(2)=1;for n=1:1:8 f(n+2)=f(n)+f(n+1);endf,例:把前例计算fibonnaci数的脚本文件改成函数文件如下:function f=fibo(N)%FIBO;计算参数N个Fibonnaci数的函数文件%f=fibo(N);N可取任意自然数%.%编写于.f(1)=1;%初始化1f(2)=1;%初始化2for n=1:N f(n+2)=f(n)+f(n+1);end;,例子:建立一个命令文件将变量a,b的值互换,然后运行该命令文件。首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;a b 然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。,例子:交换a与b的取值;function a,b=swap(a,b)%The function swap receives two values,swaps them,%and returns the result.The syntax for the call is%a,b=swap(a,b)where the a and b in the()are the%values sent to the function and the a and b in the are%returned values which are assigned to corresponding%variables in your program.temp=a;a=b;b=temp;,x=5;y=6;x,y=swap(x,y)help swap%displays:,例子:求k的阶乘function n=factorial(k)%The function n=factorial(k)calculates and%returns the value of k factorial.If k is negative,%an error message is returned.if(k 0)n=Error,negative argument;elseif k2 n=1;else n=1;for j=2:k n=n*j;endend,函数所传递参数的可调性 在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。,nargin用法示例。函数文件examp.m:function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end 命令文件mydemo.m:x=1:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3),数据的输入输出,input函数 调用格式为:A=input(提示信息,选项);其中提示信息为一个字符串,用于提示用户输入什么样的数据。如果在input函数调用时采用s选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:xm=input(Whats your name?,s),disp函数 调用格式为 disp(输出项)其中输出项既可以为字符串,也可以为矩阵。注意:用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。,求一元二次方程ax2+bx+c=0的根。程序如下:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);,pause函数 其调用格式为:pause(延迟秒数)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。,1.if语句 在MATLAB中,if语句有3种格式。1.单分支if语句 语句格式为:if 条件 语句组 end 当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,5.2 MATLAB语言的程序流程语句,选择语句,2.双分支if语句 语句格式为:if 条件 语句组1 else 语句组2 end 当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,5.2 MATLAB语言的程序流程语句,计算分段函数值。程序如下:x=input(请输入x的值:);if x=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);end y,5.2 MATLAB语言的程序流程语句,3.多分支if语句语句格式为:if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组m+1end,5.2 MATLAB语言的程序流程语句,例子:输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下:c=input(请输入一个字符,s);if c=A end,switch语句 其语句格式为:switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组m+1 end,5.2 MATLAB语言的程序流程语句,例:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣 5000price 14%折扣输入所售商品的价格,求其实际销售价格。,5.2 MATLAB语言的程序流程语句,程序如下:price=input(请输入商品价格);switch fix(price/100)case 0,1%价格小于200 rate=0;case 2,3,4%价格大于等于200但小于500 rate=3/100;case num2cell(5:9)%价格大于等于500但小于1000 rate=5/100;case num2cell(10:24)%价格大于等于1000但小于2500 rate=8/100;case num2cell(25:49)%价格大于等于2500但小于5000 rate=10/100;otherwise%价格大于等于5000 rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格,try语句语句格式为:try 语句组1catch 语句组2end try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的。,5.2 MATLAB语言的程序流程语句,矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。程序如下:A=1,2,3;4,5,6;B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr%显示出错原因,循环结构,for语句 语句格式为:for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 首先计算三个表达式的值,再将表达式1的值赋给循环变量,如果此时循环变量的值介于表达式1和表达式3的值之间,则执行循环体语句,否则结束循环的执行。执行完一次循环之后,循环变量自增一个表达式2的值,然后再判断循环变量的值是否介于表达式1和表达式3之间,如果满足仍然执行循环体,直至不满足为止。这时将结束for语句的执行,而继续执行for语句后面的语句。,5.2 MATLAB语言的程序流程语句,例:一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。程序如下:for m=100:999m1=fix(m/100);%求m的百位数字m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字if m=m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend,例:已知求表达式y=1+1/(22)+1/(32)+,当n=100时,求y的值。程序如下:y=0;n=100;for i=1:n y=y+1/i/i;end y 在实际MATLAB编程中,为提高程序的执行速度,常用向量运算来代替循环操作:n=100;i=1:n;f=1./i.2;y=sum(f),for语句更一般的格式:for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。,5.2 MATLAB语言的程序流程语句,例子:已知5个学生4门功课的成绩,求每名学生的总成绩。程序如下:s=0;a=65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87;for k=a s=s+k;enddisp(s);,while语句 while语句的一般格式为:while(条件)循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,5.2 MATLAB语言的程序流程语句,例:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。程序如下:sum=0;cnt=0;val=input(Enter a number(end in 0):);while(val=0)sum=sum+val;cnt=cnt+1;val=input(Enter a number(end in 0):);endif(cnt 0)sum mean=sum/cntend,5.2 MATLAB语言的程序流程语句,前例:已知求表达式y=1+1/(22)+1/(32)+,当n=100时,求y的值。,5.2 MATLAB语言的程序流程语句,与循环结构相关的还有一个break语句,当在循环体内执行到该语句时,程序将跳出循环。该语句一般与if语句配合使用。例 用while语句实现前例。程序如下:y=0;i=1;while 1 f=1/i/i;y=y+f;if i=100 break;end i=i+1;end y,break语句和continue语句 与循环结构相关的语句还有break语句和continue语句。它们一般与if语句配合使用。break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。,5.2 MATLAB语言的程序流程语句,例:求100,200之间第一个能被21整除的整数。程序如下:for n=100:200if rem(n,21)=0 continueendbreakendn,循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。在设计多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置,不要搞错。,5.2 MATLAB语言的程序流程语句,函数调用 函数调用的一般格式是:输出实参表=函数名(输入实参表)例子:利用函数文件,实现直角坐标(x,y)与极坐标(,)之间的转换。函数文件tran.m:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);调用tran.m的命令文件main1.m:x=input(Please input x=:);y=input(Please input y=:);rho,the=tran(x,y);rho,the,利用函数的递归调用,求n!递归调用函数文件factor.m:function f=factor(n)if n=1 f=1;else f=factor(n-1)*n;end编写函数调用函数文件factor.m,求s=1!+2!+3!+4!factor(1)+factor(2)+factor(3)+factor(4),5.3 全局、局部变量、子函数与私有目录,MATLAB工作区中的变量和M函数内部的变量都是局部变量,他们是互不干扰的,但也可以显性地把变量定义为全局变量,使得他们在整个程序中都起作用。,全局变量定义格式为 global a b c d注意变量之间不能用逗号分开,在MATLAB工作区和M函数内部同时要声明该变量为全局变量。,为保证函数的独立性,一般情况下不建议使用全局变量。,全局变量应用示例 先建立函数文件wadd.m,该函数将输入的参数加权相加。function f=wadd(x,y)global ALPHA BETA f=ALPHA*x+BETA*y;在命令窗口中输入:global ALPHA BETA ALPHA=1;BETA=2;s=wadd(1,2),5.3 全局、局部变量、子函数与私有目录,5.3 全局、局部变量、子函数与私有目录,从MATLAB 5.0 开始引入子函数。所谓子函数就是一个函数文件中不但包含该函数本身,还包含专门由该函数调用的下一级函数,这样的专门函数称为子函数。子函数是不能有其他文件中的函数调用的。,私有目录即在当前的 MATLAB 目录下建立一个 private 子目录,该目录下的内容只能由当前目录下的函数调用,而不能有其他函数调用。,5.4 MATLAB函数的跟踪调试,用 MATLAB 自带的编辑器 EDIT编辑所要跟踪调试的程序,在希望的语句上设置断点,在MATLAB命令窗按正常方式运行命令,程序会自动停留在所设的断点处。,调试状态下,MATLAB命令窗的命令提示符变为 K。这时可输入任何MATLAB命令,变量为函数内部的局部变量,而不是工作区中的变量。,调试状态下,鼠标指针指向想查询的局部变量上将立即能显示出该变量值。,5.4 MATLAB函数的跟踪调试,跟踪调试程序中 Debug 菜单下的子菜单项的功能如下表,5.5 MATLAB工具箱编写技巧,将为某种专门目的编写一组 MATLAB 函数放在一个目录下,就形成了一个新的工具箱。为了使得用户能象MATLAB提供的工具箱一样使用该工具箱,必须将该工具箱所在的目录用命令 addpath 添加到MATLAB的搜索路径中去。为了能使得命令 help 工具箱名 能列出该工具箱的所有函数的功能介绍,应该按下述格式编写一个名为 contents.m 的文件。第一行给出工具箱名称,第二行给出版本信息,由命令 ver 工具箱名 可以获得该工具箱的版本信息。一般在该工具箱下还有一文件 readme.m 用来存放有关该工具箱的版本升级信息,使用命令 whatsnew 工具箱名 查看的就是该文件的信息。,type contents.m%Symbolic Math Toolbox.%Version 2.1.2(R12.1)11-Sep-2000%New Features.%Readme-Overview of the new features in/changes made to%the Symbolic and Extended Symbolic Math Toolboxes.%Calculus.%diff-Differentiate.%Linear Algebra.%poly-Characteristic polynomial.%Simplification.%simplify-Simplify.%Solution of Equations.%solve-Symbolic solution of algebraic equations.%Variable Precision Arithmetic.%vpa-Variable precision arithmetic.,5.5 MATLAB工具箱编写技巧,6种基本数据类型及若干衍生类型,如下图。,5.6 MATLAB中新的数据结构,5.6 MATLAB中新的数据结构,从5.0版本开始,MATLAB 提供了几种新的数据结构类型,它们是:1.数据结构体 struct;2.类 class;3.单元结构cell;,student_rec.number=1;student_rec.name=Ying;student_rec.height=165;student_rec.test=100,80,75;77,60,92;67,28,80;100,89,78;student_recstudent_rec=number:1 name:Ying height:165 test:4x3 double,数据结构体 struct,与C语言不同,MATLAB中数据结构类型的变量不用定义一个结构体先,直接用就可以,如下例。,5.6 MATLAB中新的数据结构,数据结构体 struct,引用成员变量,student_rec.testans=100 80 75 77 60 92 67 28 80 100 89 78,建立结构体类型的数组,b(50,2)=struct(student_rec)b=50 x2 struct array with fields:number name height test,5.6 MATLAB中新的数据结构,数据结构体 struct,修改结构数值元素的取值,增加结构体成员,b(43,2).number=50+43;b(43,2).name=Gan;b(43,2).height=156;b(43,2).test=83,80,78;97,80,62;90,20,30;30,20,80;,b(1,1).weight=90b=50 x2 struct array with fields:number name height test weight,删除结构体成员,b=rmfield(b,weight)b=50 x2 struct array with fields:number name height test,5.6 MATLAB中新的数据结构,类 class,类不但包含成员变量,还包含成员函数,我们通过一个例子来介绍类的构造,下面建立多项式类。,首先选定一个类的名字,如多项式类我们选为 polynom。以这个名字在当前目录下建立一个子目录,而且要加符号,即建立子目录 polynom。该目录无需在MATLAB路径下再指定。,5.6 MATLAB中新的数据结构,polynom类的数据结构,多项式类只包含一个数据成员即 p.c,它即是多项式系数,幂次从高到底。该成员变量只能被 polynom目录下的成员函数访问。,polynom类的成员函数,构造函数 polynom.m多项式到双精度数的转换函数多项式到字符串的转换函数显示函数A subsref method重载运算符+,-,和*重载函数 roots,polyval,plot,和 diff,5.6 MATLAB中新的数据结构,function p=polynom(a)%POLYNOM Polynomial class constructor.%p=POLYNOM(v)creates a polynomial object from the vector v,%containing the coefficients of descending powers of x.if nargin=0 p.c=;p=class(p,polynom);elseif isa(a,polynom)p=a;else p.c=a(:).;p=class(p,polynom);end,polynom类的构造函数 polynom.m,p=polynom(1 0-2-5)p=polynom object:1-by-1,5.6 MATLAB中新的数据结构,function c=double(p)%POLYNOM/DOUBLE Convert polynom object to coefficient vector.%c=DOUBLE(p)converts a polynomial object to the vector c%containing the coefficients of descending powers of x.c=p.c;,polynom类的转换函数 double.m,function display(p)%POLYNOM/DISPLAY Command window display of a polynomdisp();disp(inputname(1),=)disp();disp(char(p)disp();,polynom类的显示函数 display.m,double(p)ans=1 0-2-5,display(p)p=x3-2*x-5,5.6 MATLAB中新的数据结构,function r=plus(p,q)%POLYNOM/PLUS Implement p+q for polynoms.p=polynom(p);q=polynom(q);k=length(q.c)-length(p.c);r=polynom(zeros(1,k)p.c+zeros(1,-k)q.c);,polynom类重载运算符 plus.m,function r=mtimes(p,q)%POLYNOM/MTIMES Implement p*q for polynoms.p=polynom(p);q=polynom(q);r=polynom(conv(p.c,q.c);,polynom类重载*运算符 mtimes.m,5.6 MATLAB中新的数据结构,单元结构 cell,单元结构类似于数组,但单元结构中各元素可以是不同属性的数据,见下例。,访问单元数据要用带有大括号下标的形式,不能用圆括号。可以使用 celldisp 函数来直接显示整个单元。删除第n个单元元素用下面命令:a(n)=;注意用圆括号。,a=1,Ying,180,magic(3)a=1 Ying 180 3x3 double a4ans=8 1 63 5 7 4 9 2,5.6 MATLAB中新的数据结构,单元结构 cell应用,varargin 表示输入变量列表,是一个单元结构变量varargout 表示输出变量列表,是一个单元结构变量,function a=convs(varargin)a=varargin1;for i=2:length(varargin)a=conv(a,varargini);end,p=1 2 4 0 5;q=1 2;f=1 2 3;g=convs(p,q,f,1 1,1 3,1 4);g=1 11 56 176 376 578 678 648 527 315 90,5.6 MATLAB中新的数据结构,5.7 MATLAB语言编程技巧,MATLAB运行机制,MATLAB 语言在函数调用中或文件执行时,如果遇到了某一个名字,则按照下面的优先级顺序对这个名字进行判定。,判定这个名字是否为变量名判定这个名字是否为本函数内部的子函数判定这个名字是否为本目录下的私有目录内函数判定这个名字是否为 MATLAB 的内在函数名判定这个名字是否为 MATLAB 路径下的 Mex 型文件判定这个名字是否为 MATLAB 路径下的 M 函数,MATLAB 搜索路径的顺序是按照其路径设定文件 pathdef.m 中的先后次序来进行的。,MATLAB运行机制,用户可以用命令 exist 来查询当前的工作区下是否存在一个名字,其调用格式为:i=exist(字符串),例如 i=exist(A);,i=1,则表示当前工作区下存在变量 Ai=2,则表示MALTAB工作路径下存在文件 A.mi=3,则表示MATLAB工作路径下存在文件 A.dlli=4,则表示表示存在 Simulink 文件 A.mdli=5,则表示存在内部 MALTAB 函数 A()i=6,则表示MATLAB工作路径下存在伪代码文件 A.pi=7,则表示MATLAB工作路径下存在一个A子目录i=0,则表示不存在任何和 A 有关的变量和文件,5.7 MATLAB语言编程技巧,测定程序执行时间和时间分配,tic 和 toc 是启动和停止秒表,cputime 获取 CPU时间,tic,t=cputime;a=hilb(1000);toc,cputime-telapsed_time=0.7030ans=0.7500,M 函数耗时剖析命令 profile,profile on待测函数名profile reportprofile off,5.7 MATLAB语言编程技巧,加快MALTAB程序执行速度的建议,尽量避免使用循环多重循环情况下,外循环次数要少大型矩阵要预先定维优先考虑内在函数采用有效的算法应用 Mex 技术,5.7 MATLAB语言编程技巧,大致可分为以下几类:以.mat为扩展名的二进制数据文件。以.txt、.dat为扩展名的ASCII码数据文件。以.bmp、.jpg、.tif等为扩展名的图像文件。以.wav为扩展名的声音文件。,MATLAB允许接受的数据文件,第一题:编写函数文件求半径为r的圆的面积和周长。要求如下:把半径作为输入,圆面积和圆周长作为输出;并要求在帮助信息里注明函数作用及参数说明;,上机练习,第二题:分别用 for 和 while 循环结构编写程序,写出实现下列表达式的m函数。并考虑一种避免循环的简洁方法来进行求和,并比较各种算法的运行时间。提示:测量运行时间用tic,toc命令;,上机练习,上机练习,第四题:用m函数定义多元函数并且利用其来求f(-3,4),f(6,8)的取值,并在坐标轴上画出其图形。提示:f作为m函数输出变量,x,y作为输入变量;,上机练习,

    注意事项

    本文(MATLAB第五讲MATLAB程序语言设计1246.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开