欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    5MATLAB程序设计基础.docx

    • 资源ID:11681993       资源大小:31.24KB        全文页数:16页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    5MATLAB程序设计基础.docx

    1、5MATLAB程序设计基础第五节 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文件中最简单的一种,不需要输入输出参数,用命令语句可以控制MATLAB工作空间的所

    5、有数据。运行过程中,产生的所有变量均是全局变量,这些变量一旦生成,就一直保存在内存空间中,除非用户运行clear命令将它们清除。运行一个命令文件等价于从命令窗口中按顺序运行文件里的命令。由于命令文件只是一串命令的集合,因此程序不需要预先定义,而只是像在命令窗口中输入命令那样,依次将命令编辑在命令文件中即可。例如:建立一个命令文件将变量a,b的值互换,然后运行该命令文件。首先建立命令文件并以文件名exch.m存盘clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;ab 然后在MATLAB的命令窗口中输入exch,将会执行该命令文件,输出: a =

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

    7、空间中,而函数文件内定义的变量只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。例如:建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。首先建立函数文件fexch .m functiona,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 = 11 12 13 14 15 16 17 18y = 1 2 3 4 5 6 7 8 9 10调用该命令文件时,既有输入参数,又有输出参数。当文件执行完毕后,可以用w

    8、hos查看工作空间中的变量。这里会发现a,b,c未被保留在工作空间中。例如:average 函数用于计算矢量中单元的平均值。functiony=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:1000; average(

    9、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语句的循环结构。语句格式为:for 循环变量表达式1:表达式2:表达式3

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

    12、ata输出为: a = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 例3:运用非1步长,119以内的奇数。for i=1:2:19 a(i+1)/2)=i; enda输出为:a = Columns 1 through 6 1 3 5 7 9 11Columns 7 through 10 13 15 17 19(2) while 语句while 语句是条件循环语句,while循环使语句体在逻辑条件控制下重复不确定次,直到循环条件不成立为止。while 语句格式为:while(条件)循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再

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

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

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

    16、量或字符变量,通过这个数值或字符与case后面的数值或字符相比较,满足哪一个case就执行哪一个case下面的语句体,如果所有case的都不满足,就执行otherwise下面的语句体,otherwise语句不是必须的,如果没有otherwise,当所有case都不满足跳出该分支结构。switch与end必须配对使用。例6 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price200没有折扣200price500 3%折扣500price1000 5%折扣1000price2500 8%折扣2500price *Inner matrix dimensions

    17、must agree. 5其他流程控制语句(1) continue语句continue语句用于控制for循环和while循环跳过某些执行语句,在for循环和while循环中,当出现continue语句时,则跳过循环体中所有剩余的语句,继续下一次循环。在嵌套循环中,continue控制执行本嵌套中的下一次循环。(2) break语句break语句用于终止for循环和while循环的执行。当遇到break语句时,则退出循环体,继续执行循环体外的下一个语句。在嵌套循环中,break只存在于最内层的循环体中。(3) return语句return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用

    18、于终止 keyboard方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数中的某一位置,根据某种条件迫使被调用函数提前结束并返回到调用函数。三、 数据的输入与输出MATLAB不但是一个自包容的高效工作环境,而且也能与其他外部应用程序进行交换。下面就简单的介绍一些数据输入与输出的内容。1数据的输入数据输入的方法很多,究竟选择哪种方法取决于数据量的多少,数据的可读性,数据形式等。下面介绍几种常用的方法。(1)键盘输入:如果数据不多(1015个),那么利用 ,直接键盘输入最方便。数据较多时这种方法不好,一旦出错,无法修改。(2)用M文

    19、件产生数据:利用文本编辑器编辑一个命令M文件,通过运行该文件把按元素列表方式的数据引入MATLAB工作空间。这种方法可利用文本编辑器修改数据,适用于较多数据的输入。(3)从ASC码文件装载数据:文本格式的数据文件中,数据以ASC码形式存储,带回车结尾的固定长度行,数与数之间以空格分隔。这类文件可用load命令直接读入MATLAB,其内容存放在以文件名命名的变量中。2数据的输出(1)利用diary命令输出数据:在MATLAB命令窗口中运行diary命令可以在当前工作目录上产生一个名为diary的日记文件,它将记录此后MATLAB命令窗口中显示的内容(包括命令、中间运算结果、最终结果等)。该文件可

    20、以用文本编辑器进行编辑,日记文件不仅提供数据,耐用还为以后用户撰写总结文件或报告提供便利的原始素材,关闭日记文件的命令为diary off。再次打开日记文件,不会清除原有的内容,而是将新的内容接在后面。(2)利用Notebook获取数据:diary命令产生的日记文件的缺陷是内容比较混乱,同时不包含MATLAB运行中产生的数据图形,Notebook是更好的选择。在Notebook环境下产生的M-book文件不仅文字质量高、版面规范漂亮,而且包括了MATLAB的命令、数据和图形。更优越的是M-book中的MATLAB命令可以随时运行随时修改,MATLAB工作空间中的数据随之改变,M-book始终保

    21、持文件中的数据、图形与命令一致,运行Notebook的条件是要求所用的计算机上装有MS Word。(3)save命令输出数据:save命令将当前MATLAB内存中的变量存到文件中去。3save 和load命令的使用save 和load命令是MATLAB与外部环境交换数据时最常用的命令。save将MATLAB工作空间中的变量存入磁盘,而load命令则把磁盘上的数据调入工作空间。(1)save命令的常用调用方法save将MATLAB工作空间中所有变量以二进制格式存入名为matlab.mat的缺省文件。 save dfile 将工作空间中的所有变量以二进制格式存入名为dfile.mat文件,扩展名自

    22、动生成。 save dfile x只把变量x以二进制格式存入名为dfile.mat文件,扩展名自动生成。 save dfile.dat x-ascii将变量x以8位ASC码形式存入dfile.dat文件。 save dfile.dat x-ascii-double将变量x以16位ASC码形式存入dfile.dat文件。 save(fname,a,-ascii) fname是一具预先定义好的包含文件名的字符串,该用法将变量a以ASC码格式存入由fname定义的文件中。在这种方法中,文件名是一个字符变量,因此可以方便地通过编程方法存储一系列的数据文件。(2)load命令的常用方法load 把磁盘文件matlab.mat的内容读入内存,由于存储 .mat文件时包含了变量名的信息,因此回调时已直接将原变量信息带入,不需重赋变量。load dfile把磁盘文件dfile.mat内容读入内存。load dfile.dat把磁盘文件dfile.dat内容读入内存,这是一个ASC码文件,系统自动将文件名(这里是dfile)定义为变量名。a=load (fname) fname是预先定义好的包含文件名的字符串,将由fname定义文件名的数据文件调入变量a中,使用这种方法可以通过编程方便地调入一系列数据文件。


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开