




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/11/19,中国计量学院理学院lxy,1,专题三Matlab编程入门(2),2019/11/19,中国计量学院理学院lxy,2,Matlab编程入门,Matlab编程简介,Matlab作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和C、FORTRAN等高级语言一样进行程序设计。,在Matlab程序设计中,要充分利用Matlab数据结构的特点,提高编程效率。,利用Matlab的程序控制功能,可以将有关Matlab命令编成程序存储在一个文件中(M文件),然后在命令窗口中运行该文件,Matlab就会自动依次执行文件中的命令,直到全部命令执行完毕。,2019/11/19,中国计量学院理学院lxy,3,M文件是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。,M文件,M文件以.m为扩展名。,2019/11/19,中国计量学院理学院lxy,4,M文件的建立与打开,2019/11/19,中国计量学院理学院lxy,5,在命令窗口中输入f2cs,即可执行该M文件。,例:编写一个脚本文件将华氏温度转化为摄氏温度,脚本文件举例,脚本文件运行后,文件中所产生的所有变量都驻留在Matlab当前工作空间,可以用whos查看。,2019/11/19,中国计量学院理学院lxy,6,一个完整的函数M文件的结构为:functionf=fact(n)函数定义语句%Computeafactorialvalue.H1行%FACT(N)returnsthefactorialofN,帮助文本%usuallydenotedbyN!%Putsimply,FACT(N)isPROD(1:N).注释语句f=prod(1:n);函数体函数定义语句只在函数文件中存在,定义函数名称、输入输出参数的数量和顺序。函数定义语句的格式为:functiony=fact(x)。,M文本文件介绍,2019/11/19,中国计量学院理学院lxy,7,M文本文件介绍,一个一般的脚本M文件,%scriptm-fileexample:calculatethevolumeandsurfaceareaofacolumer=1;%theradiusofthecolumeh=1;%thehightofthecolumes=2*r*pi*h+2*pi*r2;%calculatethesurfaceareav=pi*r2*h;%calculatethevolumedisp(Thesurfaceareaofthecolumeis:),disp(s);disp(Thevolumeofthecolumeis:),disp(v);,2019/11/19,中国计量学院理学院lxy,8,关系运算,比较大小,如果结论是真则返回1,否则返回0,注意=与=的区别,关系操作符能用来比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。,关系运算符,2019/11/19,中国计量学院理学院lxy,9,例:,关系运算举例,2+2=4,23,A=135;206;B=310;246;A=B,x=50;42;xB=123;456;789;disp(B),数据输出disp,数据的输出:disp,2019/11/19,中国计量学院理学院lxy,15,数据输出fprintf,format中还可以使用一些特殊格式,如:,n(换行)t(制表符)b(退格)(反斜杆)%(百分号),2019/11/19,中国计量学院理学院lxy,16,数据输出fprintf,a=Hello;b=2.4;c=100*pi;fprintf(a=%s,b=%f,c=%en,a,b,c),例:,format中的输出格式要与输出变量一一对应,可以没有输出变量,2019/11/19,中国计量学院理学院lxy,17,pause,程序的暂停:pause,pause或pause(n),若想强行终止程序的运行,可以使用Ctrl+c,其中n是延迟时间,以秒为单位;若缺省,则将暂停程序,直到用户按任意键后继续,pauseoff屏蔽程序中所有pause的作用pauseon打开pause的作用,2019/11/19,中国计量学院理学院lxy,18,定义函数m文件,MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.,定义函数的m文件有特殊的格式要求:第一行必须是一特殊字符function开始,格式为:function因变量名=函数名(自变量名)(函数体),2019/11/19,中国计量学院理学院lxy,19,例:定义函数z=100(y-x2)2+(1-x)2,functionz=fun(x,y),1.建立M文件:fun.m,2.可以直接使用函数fun.m,例如:计算fun(1,2),只需在Matlab命令窗口键入命令:x=1,y=2fun(x),z=100*(y-x2)2+(1-x)2;,2019/11/19,中国计量学院理学院lxy,20,选择结构是根据给定的条件成立或不成立,分别执行不同的语句。Matlab用于实现选择结构的语句有if语句和switch语句。,选择结构,2019/11/19,中国计量学院理学院lxy,21,单分支结构,ifexpression(条件)statements(语句组)end,if条件语句,2019/11/19,中国计量学院理学院lxy,22,ifexpression1(条件1)statements1(语句组1)elseifexpression2(条件2)statements2(语句组2).elseifexpressionm(条件m)statementsm(语句组m)elsestatements(语句组)end,多分支结构,if条件语句,P141Eg.07-06,2019/11/19,中国计量学院理学院lxy,23,根据表达式的不同取值,分别执行不同的语句。,switchexpression(表达式)casevalue1(表达式1)statement1(语句组1)casevalue2(表达式2)statement2(语句组2).casevaluem(表达式m)statementm(语句组m)otherwisestatement(语句组)end,switch语句,2019/11/19,中国计量学院理学院lxy,24,Matlab首先计算expression的值,然后将它依次与各个case指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出switch结构。,switch后面的表达式expression的值可以是一个标量或字符串。,switch语句,otherwise指令可以不出现。,如果所有的比较结果都为假,则执行otherwise后面的语句组,然后跳出switch结构。,2019/11/19,中国计量学院理学院lxy,25,例:利用分支语句编写条件判断程序,实现任意底对数的计算。,switch举例,分析:Matlab中只提供了有限底的对数函数。,P143Eg.07-07,2019/11/19,中国计量学院理学院lxy,26,循环结构for语句和while语句,循环结构,2019/11/19,中国计量学院理学院lxy,27,forvariable=expressionstatement(循环体)end,循环变量,表达式expression可以是行向量,也可以是矩阵,for循环,clear;y=0;n=100;fork=1:ny=y+1/(2*k-1);end,!不能在for循环体内改变循环变量的值!,2019/11/19,中国计量学院理学院lxy,28,循环语句可以嵌套使用,while循环,whileexpression(条件)statement(循环体)end,如果预先就知道循环的次数,则可以采用for循环;否则,如果预先无法确定循环的次数,则可以使用while循环。,2019/11/19,中国计量学院理学院lxy,29,这个例子给出了计算eps的一种方法。这里我们用大写EPS,因此系统中eps的值不会被覆盖。当EPS=eps时,条件仍成立;而当EPS=eps/2时,条件为假,退出循环,所以最后应有EPS=eps/2。num用来记录循环次数。,计算Matlab中eps值,while循环举例,num=0;EPS=1;while(1+EPS)1EPS=EPS/2;num=num+1;end,2019/11/19,中国计量学院理学院lxy,30,break和continue,break语句用于终止循环的执行,即跳出最内层循环continue语句用于结束本次循环,进行下一次循环break和continue一般与if语句配合使用,其它流控制语句,2019/11/19,中国计量学院理学院lxy,31,首先由计算机随机产生一个1,100之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示High,小于则显示Low,等于则显示Youwon!,同时退出游戏。用户最多有7次机会。,程序示例,猜数游戏,2019/11/19,中国计量学院理学院lxy,32,程序示例,数论中的一个有趣问题:任取一个正整数,如果是偶数,用2除,如果是奇数,用3乘再加1,反复这个过程,直到所得到的数为1。问:是否存在使该过程永不中止的整数?,2019/11/19,中国计量学院理学院lxy,33,while1n=input(Pleaseentern(nonpositivequit):);ifn1ifrem(n,2)=0n=n/2;elsen=3*n+1;endfprintf(nn=%d,n);endfprintf(nn=%disnotweneed!continue.n,nt);end,程序示例,2019/11/19,中国计量学院理学院lxy,34,函数变量,局部变量全局变量永久变量,2019/11/19,中国计量学院理学院lxy,35,局部变量,每个函数都有自己的局部变量,这些变量存储在该函数独立的工作区中,与其他函数的变量及主工作区中的变量分开存储。当函数调用结束时,这些变量随之删除,不保存在内存中。,在函数中,变量默认为局部变量。,2019/11/19,中国计量学院理学院lxy,36,全局变量,与局部变量不同,全局变量可以在定义该变量的全部工作区中有效。当在一个工作区内改变该变量的值时,该变量在其他工作区中的变量同时改变。,任何函数如果需要使用全局变量,则必须首先声明,声明格式为:global变量名1变量名2,2019/11/19,中国计量学院理学院lxy,37,永久变量,除局部变量和全局变量外,MATLAB中还有一种变量类型为永久变量。永久变量的特点为:只能在M文件内部定义;只有该变量从属的函数能够访问该变量;当函数运行结束时,该变量的值保留在内存中,因此当该函数再次被调用时,可以再次利用这些变量。永久变量的定义方法为:persistent变量名1变量名2。,2019/11/19,中国计量学院理学院lxy,38,程序示例,%ex4global.mclear;globalaba=1;b=3;y=mysquaresum(a,b);fprintf(a=%g,b=%gn,a,b);z=myproduct(a,b);fprintf(a=%g,b=%gn,a,b);,%mysquaresum.mfunctionsquare_sum=mysquaresum(x,y)square_sum=x2+y2;a=x+y;,%myproduct.mfunctionproduct=myproduct(x,y)globalaproduct=x*y;a=x+y;,2019/11/19,中国计量学院理学院lxy,39,2019/11/19,中国计量学院理学院lxy,40,补充1函数类型,1匿名函数2主函数3子函数4嵌套函数5私有函数6重载函数,2019/11/19,中国计量学院理学院lxy,41,匿名函数,匿名函数提供了一种创建简单程序的方法,使用它用户可以不必每次都编写M文件。用户可以在MATLAB的命令窗口或是其他任意M文件和脚本文件中使用匿名函数。,匿名函数的格式为:fhandle=(arglist)expr其中fhandle是为该函数创建的函数句柄;符号用于创建函数句柄;arglist为用逗号分隔的参数列表;expr为函数主体,为MATLAB表达式。,P149Eg.07-13,2019/11/19,中国计量学院理学院lxy,42,functionprintyh(n)%打印杨辉三角形,本函数没有输出参数yh=1;disp(yh);ifn=1,return;endyh=1,1;disp(yh);fork=3:nyh_old=yh;k2=ceil(k/2);forl=2:k2yh(l)=yh_old(l-1)+yh_old(l);endyh(k2+1:k)=yh(k-k2:-1:1);disp(yh);end,函数文件举例,printyh.m,2019/11/19,中国计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通讯电子技术试题及答案
- 2025商业地产租赁合同范本
- 2025年春季部编版初中数学教学设计八年级下册第1课时 菱形的性质
- 2025设备购买协议合同范本
- A1 自愿离婚协议书示范文本
- 知识题库-人社练兵比武劳动竞赛试题及答案(二十一)
- 公园出入口课件
- 《2025协商解除劳动合同协议》
- 搜课件模板app无删减
- 揭阳安全知识培训课件平台
- 个人信用征信服务合同
- 2025年水手理论考试题库
- 2025至2030年中国广州酒店行业市场全景调研及投资规划建议报告
- 第9课 让我们的学校更美好 第1课时(课件)2025-2026学年道德与法治三年级上册统编版
- 公路工程常规试验项目标准及检测频率取样方法全新盘点
- 稳定基金管理办法
- 2025年徐州市(中小学、幼儿园)教师招聘考试题库及答案
- 《中华医学会麻醉学分会.麻醉后监测治疗专家共识(2021版)》
- 数据安全管理员职业技能鉴定经典试题含答案
- 动设备培训课件
- 微多普勒技术用于低空公共安全治理的应用研究
评论
0/150
提交评论