收藏 分销(赏)

MATLAB程序设计和应用实例.ppt

上传人:精*** 文档编号:12815395 上传时间:2025-12-10 格式:PPT 页数:61 大小:198.50KB 下载积分:14 金币
下载 相关 举报
MATLAB程序设计和应用实例.ppt_第1页
第1页 / 共61页
MATLAB程序设计和应用实例.ppt_第2页
第2页 / 共61页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB程序设计和应用实例,5.1,MATLAB,程序设计,5.1.1,M,文件,5.1.2 脚本文件和函数文件,5.1.5 数据的输入输出,5.1.3 选择结构,5.1.4 循环结构,5.1.6,M,文件调试,5.1.1 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,将会执行该命令文件。,1.建立新的M文件,(1),菜单操作,:MATLAB命令窗口的File菜单 New菜单项 M-file命令。,(2),命令操作,:在MATLAB命令窗口输入命令,edit,。,(3),命令按钮操作,:单击MATLAB命令窗口工具栏上的“新建”命令按钮。,2.编辑已有的M文件,3.M文件的分类,P116 4.1.2内容,分类:脚本文件,(Script File),和函数文件,(Function File),。,主要区别。,M文件的建立与编辑,M文件的基本结构,函数定义行,H1行 对程序的总体介绍,函数说明 对程序详细描述,程序主体,注释 解释程序功能的文字,说明:除程序主体外,其他部分以%开头。,P116 实例,1 脚本文件,没有输入和输出,由一系列指令组成,可在命令窗口直接运行,产生的所有变量存储在,workspace,中。,例,exam5_1.m,。,5.1.2 脚本文件和函数文件,(1)函数文件的基本结构,函数文件由,function,语句引导,其基本结构为:,function,输出形参表,=,函数名,(,输入形参表,),%,注释说明部分,函数体语句,2 函数文件,函数文件的格式说明,(1),关于函数文件名,:函数文件名与函数名也可以不相同,(一般设为相同!),。,当两者不同时,MATLAB将忽略函数名而确认函数文件名,,因此调用时使用函数文件名。,(2),关于注释说明部分,。注释说明包括三部分内容:紧随函数文件引导行之后以%开头的第一注释行。第一注释行及之后连续的注释行。与在线帮助文本相隔一空行的注释行。,(1)函数文件的基本结构,函数调用的一般格式,:,输出实参表,=,函数名,(,输入实参表,),注意:等号左边是方括号,右边输入参数用括号,(2)函数文件的调用,例5.1 编写函数文件求半径为r的圆的面积和周长,function s,p=fcircle(r),%FCIRCLE calculate the area and perimeter of a circle of radii r,%r 圆半径,%s 圆面积,%p 圆周长,s=pi*r*r;,p=2*pi*r;,以上函数文件以文件名fcircle.m存入c:matlab7workmas下,然后在MATLAB命令窗口调用该函数:,s,p=fcircle(10),函数的递归调用,例:利用递归调用函数文件factor.m:,function f=factor(n),if n=A&c=a&c=0&c=9,disp(abs(c)-abs(0);,else,disp(c);,end,3.多分支if语句,5.1.4 选择结构,-switch语句,switch语句,其语句格式为:,switch 表达式,case 值1,语句组1,case 值2,语句组2,case 值m,语句组m,otherwise,语句组m+1,end,例 某商场对顾客所购买的商品实行打折销售,已知打折标准,求所售商品的实际销售价格,程序如下:,price=input(请输入商品价格);,switch fix(price/100),case 0,1,rate=0;,case 2,3,4,rate=3/100;,case num2cell(5:9),rate=5/100;,case num2cell(10:24),rate=8/100;,case num2cell(25:49),rate=10/100;,otherwise,rate=14/100;,end,price=price*(1-rate),5.1.4 选择结构-switch语句,5.1.4 选择结构,-try语句,语句格式为:,try,语句组1,catch,语句组2,end,try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。这种试探性执行语句是其他高级语言所没有的,。,5.1.4 选择结构,-try语句,例 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘,程序如下:,main5_3.m,A=1,2,3;4,5,6;B=7,8,9;10,11,12;,try,C=A*B;,catch,C=A.*B;,end,C,lasterr%显示出错原因,5.1.5 循环结构,循环语句,for语句,while语句,循环的嵌套,5.1.5 循环结构-for语句,1.for语句,语句格式为:,for 循环变量=,表达式1:表达式2:表达式3,循环体语句,end,for语句更一般的格式:,for 循环变量=矩阵表达式,循环体语句,end,执行过程是依次将矩阵的,各列元素赋给循环变量,,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据,。,5.1.5 循环结构-for语句,例 已知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;,end,disp(s);,5.1.5 循环结构-for语句,5.1.5 循环结构-while语句,while语句的一般格式为:,while(条件),循环体语句,end,其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环,其他常用指令,Continue,Break,continue命令,通常用于for或while循环语句中,与if语句一起使用,达到,跳过本次循环,去执行下一轮循环,的目的,分析下列程序,说明运行结果及原因,a=3;b=6;,for i=1:3,b=b+1;,if i2,continue%,当if,条件满足时不再执行后面语句,,跳,出本次循环。,end,a=a+2%,当i2,a=7,b=9,break命令,通常用于for或while循环语句中,与if语句一起使用,中止本次循环,跳出最内层循环,分析下列程序,说明运行结果及原因,a=3;b=6;,for i=1:3,b=b+1;,if i2,break%当,if条件满足时不再执行循环,end,a=a+2,end,运行结果:,a=7,b=,9,i2,a=3,b=6,程序流控制语句,return,指令,终止当前的命令序列,把控制返回到调用函数或键盘。,keyboard,把“控制权”交给键盘。,error,和,warning,显示出错和警告信息。,5.1.5 循环的嵌套,如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。,在设计多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置,不要搞错。,补充:1 Matlab命令执行过程,输入,china,输出变量,china的值,变量?,执行该,内部函数,当前目录中有,china.m?,内联函数?,搜索路径中有,china.m?,否,执行该,M文件,执行该,M文件,报错!,子函数?,私有函数?,执行该,M文件,是,是,是,是,是,否,否,2 MATLAB程序设计原则和技巧,1、后面的内容是程序的注解,要善于运用注解,使程序更具可读性,。,2、养成在主程序开头用,clear指令清除变量的习惯,,以消除工作空间中其他变量对程序运行的影响。但注意在,子程序中不要用clear,。,3、参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及,中间结果不在屏幕上显示,,以提高执行速度。,4、程序,尽量模块化,,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。,5、充分利用,Debugger来进行程序的调试,(设置断点、单步执行、连续执行),6、设置好MATLAB的工作路径,以便程序运行。,1.矢量化尽可能使用向量和矩阵操作,例,求,t=cputime;s=0;,for i=1:100000,s=s+(1/2i+1/3i);,end,cputime-t,ans=,向量运算,t=cputime;,n=1:100000;s=sum(1./2.n+1./3.n);,cputime-t,ans=,阵列预分配,阵列矩阵的初始化工作;在成熟规范的商业软件里必不可少,同时也是一个良好的编程素养的体现。,变量管理,matlab,中的变量类型是不需要预先定义的,编程过程中不要改变变量的使用类型。,例如,chardouble,realcomplex,x=23;,程序,,x=A,4.,尽量使用,MATLAB,内部定义的函数,本节内容是需,上机应用,的重点内容。,程序出错主要为两类:,1、,语法错误,如缺(或)等,在运行时可检测出大多数该类错误,并指出错在哪一行。,2、,算法错误,逻辑上的错误,,不易查找,遇到此类错误时需耐心。一般可考虑如下方法:,直接调试法和工具调试法,5.1.6 程序的调试,直接调试法是指在利用matlab的相关指令对程序进行调试。,主要方法有:,删除句尾分号和利用disp语句,显示中间结果;,在适当位置加上keyboard语句,使程序暂停;,在函数定义行之前加上%注释,使之变成脚本语言;,利用echo指令,使运行时在屏幕上逐行显示文件内容。,Ctrl+C强行停止程序,直接调试法,直接调试法一些辅助函数:,常用指令:return,echo,input,pause,keyboard,break;,echo命令可以使文件命令在执行时可见,这对程序的,调试和演示很有用。,keyboard请求键盘输入命令,pause等待用户反映命令,警告命令:error,warning.lasterr,lastwarn,提示命令:warndlg,errordlg,工具调试法,工具调试法是指利用matlab的相关调试工具对程序进行调试,调试步骤为:,(1)在程序可疑处设置断点;,(2)执行程序;,(3)检查程序运行至断点处变,量当前值,(4)在程序中一步步执行,(5)结束调试状态。,(6)取消断点。,1Debug菜单项,该菜单项用于程序调试,需要与Breakpoints菜单项配合使用。,Step:单步运行,Step In:单步运行,调用函数时进入函数程序,Step Out:,Run:运行,Go Until Cursor:运行到光标处,工具调试法调试菜单项,2Breakpoints菜单项(matlab7.0以上菜单内容在Debug菜单中包括),Set/Clear Breakpoint:设置/清除断点,Set/Modify Conditional Breakpoint:设置条件断点,Enable/Disable Breakpoint:使能断点,Clear Breakpoint in All Files:清除断点,Stop if Errors/Warnings:错误停止条件设置,设置条件断点时注意光标的位置,设置错误停止条件,设置条件断点,常见错误,中英文输入法未注意,习惯用i,j作为变量,变量名同函数名文件名相同,搜索路径设置不当,5.2 MATLAB应用实例,5.2.1 在高数中的应用,5.2.2 在线性代数中的应用,5.2.3 在普通物理中的应用,5.2.4 在电路中的应用,5.2.1 在高数中的应用,函数的傅立叶级数,程序实现:,function s=mfourier(f,n),syms x a b c,s=int(f,-pi,pi)/(2*pi)%计算a0,for k=1:n,a(k)=int(f*cos(k*x),-pi,pi)/pi;,b(k)=int(f*sin(k*x),-pi,pi)/pi;,s=s+a(k)*cos(k*x)+b(k)*sin(k*x),end,矩阵的代数运算,加减乘除,矩阵求逆,转置,秩,行列式,线性方程组求解等,5.2.2 在线性代数中的应用,P201 例64,设目标相对于射点的高度为yh,给定初速,试计算物体在真空中飞行的时间和距离。,5.2.3 在普通物理中的应用,三相不平衡交流电路分析。,计算下图电路中各支路电流并绘制相量图。,5.2.4 在电路中的应用,r,a,r,c,r,b,r,bc,r,ab,r,ac,i,a,i,c,i,b,i,ac,i,ab,i,bc,作业,编写程序,画出下列分段函数所表示的曲面。,已知积分k的表达式为,编程:,(1)画出0a3时,积分,k,的函数图形,(2)并计算,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服