第二讲MATLAB程序设计

上传人:仙*** 文档编号:243871198 上传时间:2024-10-01 格式:PPT 页数:38 大小:189.50KB
返回 下载 相关 举报
第二讲MATLAB程序设计_第1页
第1页 / 共38页
第二讲MATLAB程序设计_第2页
第2页 / 共38页
第二讲MATLAB程序设计_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,第二讲,MATLAB,程序设计,一数据的输入输出,1. input,函数:,用于向计算机输入一个参数。,调用格式:,A=input(,提示信息,选项,),;,注:,s,选项,则允许用户输入一个,字符串,。,例如想输入一个人的姓名,可采用命令,xm,=input(Whats your,name:,s,),【,例,】,求一元二次方程,ax,2,+,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),也可将该程序以,aa.m,文件存盘,然后运行,aa.m,文件。,help input,or,help,input,2,pause,函数:,暂停程序的执行。,调用格式:,pause(,延迟秒数,),注:如果省略延迟时间,直接使用,pause,,则将暂停程序,直到用户按任一键后程序继续执行。,一数据的输入输出,3,disp,函数:,命令窗口输出函数。,调用格式:,disp,(,输出项,),注:输出项为字符串或矩阵。,例如,A=Hello,MATLAB;,disp(A,),输出为:,Hello,MATLAB,二,程序设计,(一)选择结构,选择结构的语句有,if,语句和,switch,语句。,1,if,语句,格式一:,if,条件,语句组,end,二程序设计,格式二:,if,条件,语句组,1,else,语句组,2,end,(,一,),选择结构,格式三:,if,条件,1,语句组,1,elseif,条件,2,语句组,2,elseif,条件,m,语句组,m,else,语句组,m+1,end,二程序设计,【,例,】,输入三角形的三条边,求面积。,A=input(,请输入三角形的三条边:,);,if A(1)+A(2)A(3) & A(1)+A(3)A(2) & A(2)+A(3)A(1),p=(A(1)+A(2)+A(3)/2;,s=,sqrt(p,*(p-A(1)*(p-A(2)*(p-A(3);,disp(s,);,else,disp,(,不能构成一个三角形。,),end,运行: 请输入三角形的三条边:,4 5 6,注意:, ,9.9216,二程序设计,(,一,),选择结构,【,例,】,输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。,c=,input(,s,);,if c=A & c=a& c=z,disp(setstr(abs(c)-1);,else,disp(c,);,end,二程序设计,(,一,),选择结构,例:计算分段函数,x=,input(x,=);,if,x=0,y=0;,elseif,x=1,y=1;,elseif,x=2,y=2*x;,else,y=2*x+5;,end,y,2 switch,语句,switch,语句根据变量或表达式的取值不同,分别执行不同的语句。其格式为:,switch,表达式,case,值,1,语句组,1,case,值,2,语句组,2,case,值,m,语句组,m,otherwise,语句组,m+1,end,二程序设计,(,一,),选择结构,【,例,】,根据变量,num,的值来决定显示的内容。,num=input(,请输入一个数,);,switch num,case -1,disp(I,am a teacher.);,case 0,disp(I,am a student.);,case 1,disp(You,are a teacher.);,otherwise,disp(You,are a student.);,end,二程序设计,(,一,),选择结构,例:编程实现如下关系,: y=a*x,,其中,x=,fix(x,);,% x,取整,switch x,case,0,1,2,3,4,y=0.5*x;,case,5,6,7,8,9,y=x;,case,10,11,12,13,14,y=1.5*x;,otherwise,y=2*x;,end,y,(二)循环结构,实现循环结构的语句:,for,语句和,while,语句。,1,for,语句:,格式:,for,循环变量,=,表达式,1:,表达式,2:,表达式,3,循环体语句,end,注:其中表达式,1,的值为循环变量的初值,表达式,2,的值为步长,表达式,3,的值为循环变量的终值。步长为,1,时,表达式,2,可以省略。,二程序设计,2,while,语句,格式为:,while (,条件,),循环体语句,end,二程序设计,(,二,),循环结构,3, 循环的嵌套,如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。,多重循环的嵌套层数可以是任意的。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。,二程序设计,(,二,),循环结构,【,例,8】,求,100,1000,以内的全部,素数,。,n=0;,for m=100:1000,flag=1;,j=m-1;,i=2;,while i a=fix(2.489),a =,2, a=floor(2.489),a =,2, a=fix(-2.489),a =,-2, a=floor(-2.489),a =,-3,help,rem,help mod,rem,与,mod,的区别主要归结为,fix,和,floor,函数的区别,三,.MATLAB,有两种工作方式,交互式的命令行工作方式,M,文件的程序工作方式,M,文件,用,MATLAB,语言编写的程序,称为,M,文件。,M,文件有两类:命令文件和函数文件。,命令文件:没有输入参数,也不返回输出参数。,函数文件:可以输入参数,也可返回输出参数。,通用命令,cd,显示或改变工作目录,hold,图形保持开关,dir,显示目录下的文件,disp,显示变量或文字内容,type,显示文件内容,path,显示搜索目录,clear,清理内存变量,save,保存内存变量到指定文件,clf,清除图形窗口,load,加载指定文件的变量,pack,收集内存碎片,diary,日志文件,clc,清除工作窗,quit,退出,MATLAB,echo,工作窗信息显示开关! 调用,dos,命令,M,文件的建立与编辑,建立新的,M,文件:,从,MATLAB,命令窗口的,File,菜单中选择,New,菜单项,再选择,M-file,命令。,编辑已有的,M,文件:,从,MATLAB,命令窗口的,File,菜单中选择,Open M-file,命令。,命令文件,将需要运行的命令编辑到一个命令文件中,然后在,MATLAB,命令窗口输入该命令文件的名字,就会顺序执行命令文件中的命令。,命令文件没有输入参数也没有输出参数,只是一些,Matlab,命令和函数的组合。,命令文件可以操作工作空间的变量,也可以生成新的变量,,当命令文件执行结束后新变量将保存在工作空间中,不会被自动清除。,格式,【,例,】,建立一个命令文件将变量,a,b,的值互换。,e31,m,文件:,a=1:9;,b=11,12,13;14,15,16;17,18,19;,c=a;,a=b;,b=c;,a,b,在,MATLAB,的命令窗口中输入,e31,,将会执行该命令文件。,函数文件是另一种形式的,M,文件,每一个函数文件都定义一个函数。事实上,,MATLAB,提供的标准函数大部分都是由函数文件定义的。,3.,函数文件,函数允许通过数值进行参数传递,而且函数使用局部变量而不是全局变量操作。,函数文件的第一行必须包括“,function,”,这个关键字。函数文件的文件名必须和函数定义的函数名称相同。,程序文件与函数文件的主要区别,函数文件格式,函数文件由,function,语句引导,其格式为:,function,输出形参表,=,函数名,(,输入形参表,),注释说明部分,函数体,注:其中函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于,1,个时,则应该用方括号括起来。,1,)函数定义行,函数,M,文件的第一行用关键字“,function”,把,M,文件定义为一个函数,并指定它的名字,并且与文件名必须相同,同时定义了函数的输入和输入参数。输入参数的定义用小括号(),如果有多个输入参数则用逗号分隔;输出参数的定义用中括号,,如果有多个输出参数则用逗号分隔。,2,),H1,行,所谓,H1,行指帮助文本的第一行,它紧跟在定义行之后并以“,%,”,符号开头,用于概括说明函数名和函数的功能。在命令窗口用,lookfor,命令时将显示所寻求函数的,H1,行。,3,)函数帮助文本,帮助文本指位于,H1,行之后函数体之前的说明文本,它同样以“,%”,符号开头,一般用来比较详细地介绍函数的功能和用法。在命令窗口用,help,命令时将显示函数的,H1,行和所有帮助文本。,4,)函数体,是函数的主体部分,包括进行运行和赋值操作的所有,MATLAB,程序代码,其中可以有流程控制、输入输出、计算、赋值、注释以及函数调用等操作。,MATLAB,的函数,M,文件通常由以下,5,个部分组成:,5,)注释,除了函数开始独立的帮助文本外,还可以在函数体中添加对语句的注释。注释必须以“,%”,符号开头,,MATLAB,在编译执行,M,文件时把每一行中“,%”,后面的全部内容作为注释不进行编译。,一个,M,文件中可以定义多个函数,其中第一个定义的函数称为主函数,主函数名必须与,M,文件名相同,其它函数称为子函数。子函数只能被定义它的文件中的函数调用,其它函数和文件不能调用。,子函数,【,例,】,编写函数文件求小于任意自然数,n,的,Fibonacci,数列各项。,function f=,ffib(n,),%,用于求,Fibonacci,数列的函数文件,%f=,ffib(n,),%2010,年,3,月,3,日编,f=1,1;,i=1;,while f(i)+f(i+1),bbb.m,? The function, script, or class,bbb,cannot be indexed using or . indexing.,【,例,】,利用函数文件,实现直角坐标,(,x,y,),与极坐标,(,),之间的转换。,函数文件,tran.m,:,function ,gama,theta,=,tran(x,y,),gama,=,sqrt(x,*,x+y,*y);,theta=,atan(y/x,);,命令文件,main1.m,调用,tran.m,:,x=,input(Please,input x=:);,y=,input(Please,input y=:);,gam,the,=,tran(x,y,);,gam,the,已知转换公式为:,极坐标的矢径:,=,极坐标的幅角:,=,【,例,】,利用函数的递归调用,求,n,!。,函数文件,factor.m,:,function f=,factor(n,),if n=1,f=1;,else,f=factor(n-1)*n;,end,return; %,返回,在命令文件,main2.m,中调用函数文件,factor.m,:,for i=1:10,fac(i,)=,factor(i,);,end,fac,程序运行结果是:,fac,=,Columns 1 through 6 1 2 6 24 120 720 Columns 7 through 10,504 40320 362880 3628800,函数所传递参数的可调性,MATLAB,在函数调用上有一个与众不同之处:函数所传递参数数目的可调性。凭借这一点,一个函数可完成多种功能。,在调用函数时,,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),执行,mydemo.m,后的输出是:,ans,=,1 2 3,ans,=,2 4 6,ans,=,21,四全局变量和局部变量,在,MATLAB,中,全局变量用命令,global,定义。函数文件的内部变量是局部的,与其他函数文件及,MATLAB,工作空间相互隔离。但是,如果在若干函数中,都把某一变量定义为全局变量,那么这些函数将公用这一个变量。全局变量的作用域是整个,MATLAB,工作空间,即全程有效。所有的函数都可以对它进行存取和修改。因此,定义全局变量是函数间传递信息的一种手段。,【,例,13】,全局变量应用示例,先建立函数文件,wadd.m,,,该函数将输入的参数加权相加。,function f=,wadd(x,y,),%add two variable,global ALPHA BETA,f=ALPHA*x+BETA*y;,在命令窗口中输入:,global ALPHA BETA,ALPHA=1;,BETA=2;,s=wadd(1,2),输出为:,s =,5,习 题,输入,20,个数,求其中最大数和最小数。要求分别用循环结构和调用,MATLAB,的,max,函数、,min,函数来实现。,2.,求,Fibonacci,数列,(1),大于,4000,的最小项。,(2)5000,之内的项数。,斐波那契数列指的是这样一个,数列,:,1,、,1,、,2,、,3,、,5,、,8,、,13,、,21,、,这个数列从第三项开始,每一项都等于前两项之和。,3.,写出下列程序的输出结果,:,s=0;,a=12,13,14;15,16,17;18,19,20;21,22,23;,for k=a,for j=1:4,if mod(k(j),2)=0,s=,s+k(j,);,end,end,end,s,4.,编写函数,AddJc,(,n,),,求,=,n,k,k,1,!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!