5MATLAB程序设计基础

上传人:pu****.1 文档编号:409822049 上传时间:2023-05-10 格式:DOCX 页数:11 大小:29.04KB
返回 下载 相关 举报
5MATLAB程序设计基础_第1页
第1页 / 共11页
5MATLAB程序设计基础_第2页
第2页 / 共11页
5MATLAB程序设计基础_第3页
第3页 / 共11页
5MATLAB程序设计基础_第4页
第4页 / 共11页
5MATLAB程序设计基础_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《5MATLAB程序设计基础》由会员分享,可在线阅读,更多相关《5MATLAB程序设计基础(11页珍藏版)》请在金锄头文库上搜索。

1、第五节 MATLAB 程序设计MATLAB命令有两种执行方式:一种是交互式的命令执行方式,另一种是M 文件的程序执行方式。第一种执行方式在前面已经做了介绍,本节主要介绍后一 种执行方式。一、M文件MATLAB 是一种高效的编程语言,用户可以用普通的文本编辑器把一系列 MATLAB语句写进一个文件里,然后给定文件名存储,文件的扩展名为m,因此 称之为M文件。在运行文件时只需在MATLAB命令窗口下键入该文件名即可。建立 M 文件的一般步骤是:(1) 打开文件编辑器:这里指的是MATLAB的内部编辑/调试器,可以有几 种不同的方式打开,最简单的方法是在操作桌面的工具栏上口选择(建立新文件) 或选择

2、启(打开已有的文件),也可以在命令窗口输入命令edit建立新文件或输入 命令edit filename,打开名为filename的M文件。如果已经打开了文件编辑器需 要再建立新文件或打开其他的文件,可以用编辑器工具栏上相应的图标进行选择。(2) 编写程序内容:可以编写新的文件内容,也可以修改已有的文件。(3) 保存文件:M文件在运行之前必须先保存,可以选择编辑器工具栏上的嗚 图标进行保存,也可以在File菜单下Save或Save as完成保存。(4) 运行文件:在命令窗口输入要运行文件名即可开始运行。如果在编辑器 中完成编辑后需要直接运行,可以在编辑器的Debug菜单下Save and Run

3、选项(如 果文件已经保存过,该选项则变为Run), 个更快捷的方法是按F5键执行运行。M文件有两种形式:命令文件(Script File)和函数文件(Function File)。命令文 件通常用于执行一系列简单的 MATLAB 命令,运行时只需输入文件名字, MATLAB就会自动按顺序执行文件中的命令。和命令文件不同,函数文件可以接 受参数,也可以返回参数,在一般情况下用户不能靠单独键入该文件名来运行函 数文件,而必须由其他语句来调用。MATLAB的大多数应用程序都是由函数文件 的形式给出的,如求矩阵特征多项式的函数poly()。两种形式M文件的比较见下表:M文件命令文件函数文件形式只是一系

4、列命令语句的组合,不 需要任何说明与定义文件中的第一行要用function来说 明,然后再写程序内容参数没有输入参数,也不用返回参数可以接受参数,也可以返回参数数据处理的数据是工作空间的数据处理的是函数内部的局部变量,但 也可以设置全局变量应用自动完成一系列规定的命令,并 可以多次运行,作为普通的运行常用于需要反复调用、并不断改变 参数的用途上,可用于扩充程序,便于调试和修改MATLAB函数库和一些特殊的应 用运行 形式只需在命令窗口下键入文件名 即可运行一般情况下不能靠键入文件名来 运行,需要由其他语句调用1命令文件命令文件是M文件中最简单的一种,不需要输入输出参数,用命令语句可以 控制 M

5、ATLAB 工作空间的所有数据。运行过程中,产生的所有变量均是全局变 量,这些变量一旦生成,就一直保存在内存空间中,除非用户运行clear命令将它 们清除。运行一个命令文件等价于从命令窗口中按顺序运行文件里的命令。由于命令 文件只是一串命令的集合,因此程序不需要预先定义,而只是像在命令窗口中输 入命令那样,依次将命令编辑在命令文件中即可。例如:建立一个命令文件将变量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,将

6、会执行该命令文件,输出: a =1112131415161718b =1 2 3 4 5 6 7 8 9 10调用该命令文件时,不用输入参数,也没有输出参数,文件自身建立需要的 变量。当文件执行完毕后,可以用whos查看工作空间中的变量。这里会发现a,b,c 仍然保留在工作空间中。2函数文件如果M文件的第一个可执行行以function开始,该文件就是函数文件,每一 个函数文件都定义一个函数。事实上,MATLAB提供的函数命令大部分都是由函 数文件来定义的。从使用的角度看,函数是一个“黑箱”,把一些数据送进去,经 加工处理,把结果送出来。从形式上看,函数文件区别于命令文件之处在于命令 文件的变量

7、在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在 函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。例如:建立一个函数文件将变量 a,b 的值互换,然后在命令窗口调用该函数 文件。首先建立函数文件fexch .mfunctiona,b=exch(a,b)c=a;a=b;b=c;然后在 MATLAB 的命令窗口调用该函数文件 clear;x=1:10;y=11,12,13,14;15,16,17,18; x,y=fexch(x,y)输出为:x =11121314151617186 7 8 9 10y =12345调用该命令文件时,既有输入参数,又有输出参数。当文件执行完毕

8、后,可以用whos查看工作空间中的变量。这里会发现a,b,c未被保留在工作空间中。 例如:average函数用于计算矢量中单元的平均值。function y=average(x)% average 计算矢量中单元的平均值;% y=average(x),其中x是矢量,y是计算出的矢量中单元的平均值;% 非矢量输入将导致错误m,n=size(x);%判断输入量的大小if( (m=1)|(n=1)|(m=1&n=1)%判断输入是否为矢量error(必须输入矢量)endy=sum(x)/length(x);%计算然后在 MATLAB 的命令窗口运行以下命令,便可求得11000的平均值。 z=1:100

9、0;average(z)输出为:ans =500.50003局部变量与全局变量通常,每一个由M文件定义的MATLAB函数都拥有自己的局部变量,这些 变量独立于其他函数的局部变量和工作空间的变量,但是如果特别地定义一些变 量为全局变量,这些变量就可以共享。用关键词global就可以把一个变量定义为全局变量,在M文件中定义全局变 量时,如果在当前工作空间已经存在了相同的变量,系统就会给出警告,说明由 于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况, 应该在使用变量前先将其定义为全局变量。在 MATLAB 中对变量名是区分大小写的,因此为了在程序中分清楚而不至 于出现错误,习

10、惯上我们将全局变量定义为大写字母。二、程序结构MATLAB语言中除了按正常顺序执行的程序结构外,还提供了 8种控制程序 流程的语句,如 for、while、if、switch、try、continue、break、return 等。1循环语句 循环是指按照给定的条件,重复执行指定的语句,即是循环体,每循环一次, 都 必须作出是否继续重复的决定,这个决定所依据的条件称为循环的终止条件。MATLAB提供了两种循环方式:for-end循环和while-end循环。(1) for 语句for语句为计数循环语句,通常是把循环条件的初值、判别和变化放在循环的 开头,这种形式就是for语句的循环结构。语句格

11、式为:for循环变量=表达式1:表达式2:表达式3 循环体语句end 其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循 环变量的终值。步长为1时,表达式2可以省略。for和end必须配对使用。1111例1:已知,y =+,当n=100时,求y的值。12 22 32n 2程序如下:y=0; n=100;for i=1: ny=y+1/ i /i ;endy输出为:y =1.6350如果n小于1,此循环仍然合法,但循环内的语句将不执行。循环可以嵌套, 需要注意的是在嵌套过程中每一个for都必须与end匹配,否则程序将出错。例 2:循环的嵌套m=3;n=4;for i=1:m

12、for j=1:n a(i,j)=1/(i+j-1);endendformat rat a输出为: a =11/21/31/41/21/31/41/51/31/41/51/6例 3:运用非 1 步长,119 以内的奇数。for i=1:2:19 a(i+1)/2)=i;enda输出为: a =Columns 1 through 61 3 5 7 9 11 Columns 7 through 1013 15 17 19(2) while 语句while语句是条件循环语句,while循环使语句体在逻辑条件控制下重复不确 定次,直到循环条件不成立为止。while语句格式为:while (条件)循环体

13、语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立, 如果不成立则跳出循环。例 4: 用 while 语句实现例 1。while 1f=1/ i / i;y=y+f;if i= =100 breakendi=i+1;end y 输出为: y =2047/1252在程序中,循环的条件为 1,即循环条件总是满足的,这是一个永真循环。为了 使循环能正常结束,在循环体中加了一个 if 语句,当 i 等于 100 时,执行 break 命令,从而跳出for循环。2条件语句 条件语句是根据给定的条件成立或不成立,分别执行不同的语句。在 MATLAB中,if语句有三种结构。(1)

14、 if-end 语句语句格式为:if 条件语句体end当条件成立时,则执行语句体,执行完之后继续执行if语句的后继语句,若 条件不成立,则直接执行if语句的后继语句。如当X是整数矩阵时,输出X的值。 语句如下:if fiX(X)= =Xdisp(X);end(2) if- else-end 语句语句格式为: if 条件语句体1else语句体2 end当条件成立时,则执行语句体1;否则执行语句体2。cos( x + 1)+J x 2 +1, x = 10例5计算分段函数xjx + VX ,x 丰 10程序如下:X = input (请输入 X 的值:);if X= =10y=cos(X+1)+s

15、qrt(X*X+1);else y=X*sqrt(X+sqrt(X); end y(3) if- elseif-end 语句语句格式为: if 条件 1语句体 1 elseif 条件 2语句体 2else 语句体 3end首先计算条件1,若满足就执行语句体1,然后跳出if结构;若不满足条件1, 则计算条件2,若满足则执行语句体2,然后跳出if结构;若前面的条件都不满 足,就执行语句体 3。根据程序设计的需要可以使用多个elseif语句,也可以不用else语句。 3分支语句switch-case-end 语句是通过对某个变量值的比较做多种不同的执行选择,以 实现程序的分支结构的语句。语句格式为:switch 表达式case表达式 1语句体 1;case表达式 2语句体 2; case 表达式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号