版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1.3函数式M文件(1)函数文件的基本结构function[输出参量1,输出参量2]=函数名(输入参量1,输入参量2)%注释说明部分函数体语句其中以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。当输入参量多于一个时,则应该用小括号括起来。当输出参量多于一个时,则应该用方括号括起来。89函数式M文件一般都要自带参数,并且有返回结果。函数式M文件中的变量都不是全局变量,仅存在函数本身的工作空间不会与MATLAB基本工作空间(BaseWorkplace)的全局变量重复。函数运行完毕之后,它所定义的变量将从工作区间中清除。类似于一个黑箱。因此除了输入变量外,运行过程所需其他变量须自行设定,不推荐在函数文件中使用全局变量,以利于程序的模块化。10(2)函数调用在命令窗口,函数调用的一般格式是:
[输出参量表]=函数名(输入参量表)函数调用时输入参量出现的顺序、个数和类型,应与函数定义一致,参量名字可以不同,否则会出错。输出参量可以少于规定的个数,但绝不能多于。在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。调用的函数必须在MATLAB搜索路径范围内,一般把它们放在同一个文件夹内。113.2M文件的流控制语句
顺序结构
选择结构(if,switch)循环结构(for,while)其他流控制语句(continue,break,return,echo,input,keyboard,pause…)123.2.1顺序结构
顺序结构是最简单的程序结构,用户在编写好程序之后,系统将按照程序的物理位置顺次执行。
例如
a=1;
b=2;
c=3;
s1=a+b;
s2=s1+c;
s3=s2/s2;
133.2.2选择结构1.if语句在MATLAB中,if语句有3种格式。
(1)单分支if语句:
if条件语句组
end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。14(2)双分支if语句:if条件语句组1else
语句组2end
当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。15例
计算分段函数的值
x=input('请输入x的值:');ifx<=0y=(x+sqrt(pi))/sqrt(2);elsey=(log10(x)+sqrt(1+x*x))/2;endy16
(3)多分支if语句:if条件1
语句组1elseif条件2
语句组2……elseif条件m
语句组melse其它情况
语句组nend语句用于实现多分支选择结构。172.switch语句
switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
switch表达式
case表达式1
语句组1case表达式2
语句组2……case表达式m
语句组motherwise
语句组nend18例
选择不同颜色绘制[-2π2π]区间正弦曲线
t=[-2*pi:pi/10:2*pi];y=sin(t);colour=input(‘请输入你要选择的颜色','s');switchcolourcase'red'plot(t,y,'r');case'blue'plot(t,y,'b');otherwise%其他情况一律用黑色
plot(t,y,’k’)end
193.2.3循环结构1.for语句
For语句是一种循环语句,可以让用户很方地实现循环操作,从而可以从容地应付大规模的循环语句。(1)单循环for循环变量=初值:步长:终值循环体语句
end
20计算1+2+3+4+5结果为m=15for语句更一般的格式为:
for循环变量=矩阵表达式循环体语句
end
执行过程是依次将矩阵的各行元素赋给循环变量,然后执行循环体语句,直至各行元素处理完毕。22
例s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;ends‘
运行结果:3948576623
在实际MATLAB编程中,采用循环语句会降低其执行速度,应尽可能采用矩阵运算。24>>b=sum(a,2)b=394857662.while语句与for循环不同,while循环的判断控制可以是逻辑判断语句,因此,它的循环次数可以是一个不定数。这样就赋予了它比for循环更广泛的用途。
while(条件)
循环体语句
end
其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。25例:从0到100累加,当和大于500时候停止。26n=1;y=0;whiley<=500y=y+n;n=n+1;endny3.2.4其他流控制语句与循环结构相关的语句还有break语句和continue语句。它们一般与if语句配合使用。break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后面的语句。(2)continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。27例
求[100,200]之间第一个能被21整除的整数。程序如下:forn=100:200ifrem(n,21)~=0
continueend
breakendn不能被21整除能被21整除结束for循环28(3)echoon(off)语句执行每行程序前显示器内容。(4)pause(n)语句执行到此处停留n秒,如果没有括号参数则须用户点击任意键继续。(5)keyboard语句停止执行并将控制权交给键盘,在屏幕上显示K>>。对程序调控和程序运行中修改变量非常方便。当键入return是恢复原来程序的运行。29(6)Input语句用来提示用户输入数据或字符串,并接受输入值。A=input(‘promt’)%在屏幕显示prompt,并将输入数值付与变量AB=input(‘prompt’,’s’)’)%在屏幕显示prompt,并将输入字符付与字符串变量B(7)menu语句menu(‘说明’,’选项1’,’选项2’…)(8)Ctrl+C或者Ctrl+break强行停止程序运行。30313.3程序的调试(debug)在MATLAB的表达式中可能存在两种类型的错误,即语法错误和运行错误
3.3.1语法错误
例如:变量名或者函数名的误写,标点符号的缺漏和控制语句end的缺漏等,此类错误MATLAB运行时一般能发现并报错。易于更正。Editor中语法错误会在后面出现浅色的横杠,鼠标放在上面会给出错误的具体内容,点击“Fix”会修正语法错误。显示所有的错误3.3.2逻辑错误的识别和程序调试
1、逻辑错误,例如算法本身问题或者对MATLAB指令的使用不当,在程序运行过程中,出现溢出或是死循环等异常现象。
35(1)直接调试法
对于简单的问题,使用下面的一种或几种方法可以方便地求解:在函数文件头前加“%”,并定义输入变量的值,这样就将函数式M文件变为脚本式M文件,而脚本式M文件运行时,其工作区间就是MATLAB的工作区间,这样在出现错误的时候就可以查询这个工作区间。最好在脚本文件头两行输入“clear;clc;”创造良好的运行环境。将程序中输出关键值的行的分号(;)去掉,这样,这些运算的中间结果将在命令窗口中予以显示,用户可以据此来检查中间结果的正确性。注意矩阵运算与矩阵元素运算的区别“*、.*、/、./”。养成每行加注释的良好习惯,以利于程序的调试和可读性(2)工具调试法36
点击图标或者直接在点击行号与文本之间的横杠设置一个断点,编译器用一个大红点标记。程序运行后将在断点处暂停,并出现一个绿色箭此时命令窗口的提示符由“>>”变为“K>>”,用户可以查看前面的运行结果。
点击图标运行下一行语句,绿色箭头向下移动一位。点击
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年漳州市金盾城市服务集团有限公司职业经理人市场化选聘备考题库及一套完整答案详解
- 2025年大学数字媒体技术(媒体制作)试题及答案
- 2025年高职建筑测量(测量技术)试题及答案
- 2025年大学广播电视编导(编导基础理论)试题及答案
- 2025年大学生物(分子生物学基础)试题及答案
- 2025年大学护理学(老年用药护理)试题及答案
- 2025年中职第三学年(制冷设备安装)技术应用阶段测试题及答案
- 2025年高职物流管理(运输配送规划)试题及答案
- 2025年中职(幼儿教育)幼儿艺术教育试题及答案
- 2025年高职护理(护理评估技巧)试题及答案
- 固定式压力容器年度检查表
- 《审计实务》全套教学课件
- 装配式建筑可行性研究报告
- 跨境电子商务教案
- 新人教部编版一年级下册生字表全册描红字帖可打印
- 中国的“爱经”(一)-《天地阴阳交⊥欢大乐赋》
- 中学保安工作管理制度
- 广元市利州区何家坪石材厂饰面用灰岩矿矿山地质环境保护与土地复垦方案
- 保健按摩师初级试题
- 2021年度四川省专业技术人员继续教育公需科目(答案整合)
- 医疗废物处理方案
评论
0/150
提交评论