ImageVerifierCode 换一换
格式:PPT , 页数:44 ,大小:642KB ,
资源ID:10268445      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10268445.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(6 Matlab程序设计.ppt)为本站会员(精品文库)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

6 Matlab程序设计.ppt

1、第6章 Matlab程序设计*,M文件。程序控制结构。数据的输入输出。文件操作。程序优化(自学),掌握Matlab变量命名规则; 掌握Matlab程序的编写原则,程序结构的设计,程序名的规范,脚本程序的使用和主要结构控制语句。,本章学习要求,学习重点和难点,重点:M文件类型。 难点:M文件的程序结构。,局部变量:只能在某一函数体内使用,而不能从其他函数和 Matlab工作空间访问的变量。 全局变量:在几个函数及Matlab函数中都能使用的变量。(全局变量名应尽可能大写,并由globe声明),局部变量和全局变量,6.1 M文件,M文件有两种形式:脚本文件(Script File)和函数文件(Fu

2、nction File),如果在命令窗口执行命令与函数,效率很低,程序调试不方便,输入内容不易保存。,Matlab的M文本编辑器集成了编辑和调试的功能。,MATLAB的函数文件中除了自变量、因变量以外,在计算过程中如果用到了中间变量或其它的变量,这些都将是局部变量。局部变量只在这一函数中有效,在其它函数或程序中无效。例如,将三角形面积S视为三条边长a,b,c的函数,则可以编缉一个函数文件(文件名为:heron.m)来实现海伦公式的计算: function s=heron(a, b, c) p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); 将这一函数文件保存在工作

3、目录下,在MATLAB环境中,键入如下指令 heron(3, 4, 5) 计算机执行后,将显示出计算结果:ans= 6。在这一函数文件中,三角形的半周长p就是一个局部变量。调用这一函数时,计算机用实际的数据 3、4、5代替形式变量a、b、c计算出变量p的值,然后再计算出s的值,最后将数据结果输出到屏幕上。但是只要计算出函数值,则自变量的实际数据和中间变量都将被自动删除,计算机内存中只保留了函数值变量(缺省变量名为ans)。 如果想保留中间变量p的值,就必须将它定义为全局变量。定义p为全局变量用命令 global p 注意:这一命令必须出现在两个地方,一是函数文件中第一次使用变量p之前;二是在命

4、令窗口第一次调用这一函数文件之前。,M文件的编辑与运行,例6-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。,脚本文件:,1.首先建立命令文件并以文件名f2c.m存盘。,2.在MATLAB的命令窗口中输入f2c,将会执行该命令文件,3.执行情况为:,例6-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。,函数文件:,1.首先建立函数文件f2c.m。,2.在MATLAB的命令窗口调用该函数文件。,3.执行情况为:,M文件颜色属性,默认的编辑器颜色,改变编辑器颜色File - Preferences - color,建立新的M文件,建立新的M文件,启动文本编辑器有3种

5、方法:,菜单操作主窗口菜单 - File - New - M-file,工具栏操作主窗口工具栏 - New - M-File,命令操作命令窗口 - edit,打开已有的M文件,打开已有的M文件,也有3种方法:,菜单操作 主窗口菜单 - File - Open - 打开对话框,工具栏操作 主窗口工具栏 - Open File - 打开对话框,命令操作 命令窗口 - edit 文件名,函数文件,function 输出形参表=函数名(输入形参表)注释说明部分函数体语句,以function开头的一行为引导行,表示该M文件是一个函数文件,函数名的命名规则与变量名相同,输入形参为函数的输入参数,输出形参为

6、函数的输出参数。当输出形参多于一个时,则应该用方括号括起来,文件名应与函数名一致,函数调用,函数调用的一般格式是:输出实参表=函数名(输入实参表),注意事项:,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。,函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。,适当使用函数的递归调用可以提高程序的运行效率,函数参数的可调性,在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。,只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定

7、函数如何进行处理。,6.2 程序控制结构,循环结构,1. for语句,for 循环变量=表达式1:表达式2:表达式3循环体语句组 end,表达式1的值为循环变量的初值,,表达式2的值为步长,步长为1时,表达式2可省略。,表达式3的值为循环变量的终值。,C语言中的for循环语句:,for(循环变量初值;循环条件;循环变量增值),程序如下:y=0;n=100;for i=1:ny=y+1/(2*i-1);enddisp(y);,例已知 ,当n=100时,求y的值。,在实际Matlab编程中,采用循环语句会降低其执行速度。,for语句更一般的格式为:for 循环变量=矩阵表达式循环体语句end,执行

8、过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。,写出下列程序的执行结果。s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=as=s+k;enddisp(s);,执行结果: 列向量 39 48 57 66,2、while语句,while 条件循环体语句 end,若条件成立,则执行循环体语句,执行后再判断条件是否成立, 如果不成立则跳出循环。,例3-11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。,sum=0; cnt=0; %个数 val=input(Enter a number (end

9、 in 0):); while (val=0)sum=sum+val;cnt=cnt+1;val=input(Enter a number (end in 0):); end if (cnt 0)summean=sum/cnt end,3break语句和continue语句与循环结构相关,它们一般与if语句配合使用。,break:终止循环的执行。 当在循环体内执行到该语句时,程序将跳出循环结构,而继续执行循环语句end后面的语句。,continue:跳出本次循环。 当在循环体内执行到该语句时,程序将跳过本次循环体中所有剩下的语句,继续下一次循环。,4循环的嵌套如果一个循环结构的循环体又包括一个

10、循环结构,就称为循环的嵌套,或称为多重循环结构。,循环嵌套的基本形式:,for for循环语句end end,比较,选择(条件)结构:if,switch,单分支if语句:,当条件成立时,则执行语句组,执行完之后继续执行end语句的后继语句; 若条件不成立,则直接执行end语句的后继语句。,if 条件语句组end,双分支if语句:,if 条件语句组1else语句组2end,当条件成立时,执行语句组1,执行完后跳出结构 否则执行语句组2,执行完后跳出结构 语句组1或语句组2执行后,再执行end语句的后继语句。,例: 计算分段函数的值。,程序如下: x=input(请输入x的值:); if x=0y

11、= (x+sqrt(pi)/exp(2); elsey=log(x+sqrt(1+x*x)/2; end disp(y),多分支if语句:语句用于实现多分支选择结构。,if 条件1语句组1elseif 条件2语句组2elseif 条件m语句组melse语句组nend,计算函数y=|x|+|x-2|的值。,程序如下: x=input(请输入x的值:); if x=2y= 2*x-2; elseif x=0y=2; elsey=-2*x+2; end disp(y),switch语句,switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:,switch 表达式case 表达式1语

12、句组1case 表达式2语句组2case 表达式m语句组motherwise语句组nend,switch后面的表达式:一个标量或者一个字符串,case后面的表达式可以是一个标量或者一个字符串,也可以是一个细胞数组(cell array),细胞数组: a=-1, hello, magic(3),switch语句,注意:Matlab和C语言中的switch语句在用法上的区别,C语言中,case只是一个入口标号,并不在该处进行条件判断,会执行入口后面所有的语句;Matlab语言中,一旦执行完任意一个case后的语句,程序会跳出switch,继续执行end后面的语句。,C语言中,跳出switch需要加

13、入break语句;Matlab语言中,跳出switch不需要加入break语句。,try语句:试探性执行语句,try语句组1catch语句组2end,try语句先试探性执行语句组1,如果没有错误,执行完成后跳出try结构; 如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。,矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。,程序如下: A=1,2,3;4,5,6; B=7,8,9;10,11,12; tryC=A*B; catchC=A.*B; end disp(C); disp(lasterr);

14、 %显示出错原因,6.3 数据的输入输出,1、数据的输入函数:input,A=input(提示信息,选项);,提示信息:一个字符串,用于提示用户输入什么样的数据。 选项:设置输入的数据类型,s选项: 采用时则允许用户输入一个字符串。,例如,想输入一个人的姓名,可采用命令:,xm=input(Whats your name?,s);,2、数据的输出函数:disp,disp(输出项),其中输出项既可以为字符串,也可以为矩阵。,采用disp函数输出,其结果不显示矩阵的名字,数据的输出函数:display,display(输出项),采用display函数输出,其结果显示矩阵的名字,举 例,求一元二次方

15、程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(x); disp(x1=,num2str(x(1),x2=,num2str(x(2);,3、程序的暂停函数:pause,pause(延迟秒数),如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。,若要强行中止程序的运行可使用Ctrl+C命令。,4、M数据文件的存储/加载(save/load)save: savesave f

16、ilenamesave filename X Y Zload: loadload filenameload filename X Y Z,5. 文件操作,文件的打开函数: fopen,fid= fopen(文件名,打开方式),文件名:用字符串形式,表示待打开的数据文件,常见的打开方式有:r表示对打开的文件读数据;w表示对打开的文件写数据;a表示在打开的文件末尾添加数据;,fid用于存储文件句柄值,句柄值用来标识该数据文件,其他函数可以利用它对该数据文件进行操作。 fid非负整数,文件打开成功;fid=-1,文件打开失败。,文件数据格式有两种形式,一是文本文件,二是二进制文件。,要打开文本格式的

17、文件,在打开方式(permission)的字符之后添加t;在文本格式下,行的分隔符在文件读出时自动删除,在写文件时自动添加。 要打开二进制代码格式的文件,在打开方式(permission)的字符之后添加b;行的分隔符不删除或添加。,fopen的其他调用格式,fid,message=fopen(filename,permission,format) 使用指定的模式打开指定文件 返回文件的句柄和信息,fids=fopen(all) 返回一个包含所有打开文件的标识符的行向量,filename,permission,format=fopen(fid) 返回指定文件的全文件名、模式和格式,文件的关闭函数:fclose,文件在进行完读、写等操作后,应及时关闭,,state=fclose(fid);,该函数关闭fid所表示的文件。 state表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回1。,6.4 文件操作,fopen: 打开文件 fclose: 关闭文件 fread: 读二进制文件 fwrite: 写二进制文件 fscanf: 读有格式文件 fprintf: 写有格式文件 fseek: 设置文件指针位置 ftell: 获取文件指针当前位置 frewind:把文件指针移到文件的开头 feof: 检查fid指向的文件是否设置文件尾指示符,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报