资源描述:
《第5章 MATLAB程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章程序设计5.1M文件5.2数据的输入输出5.3选择结构5.4循环结构5.5函数文件5.6全局变量和局部变量补充程序设计注意事项:1)良好的代码习惯;(1)变量名的定义简单易懂;(2)程序结构流程清晰;(3)详细的注释;2)与其它高级语言区别:(1)交互式语言,解释性语言;(2)矩阵运算的思想;(3)…号表示续行;3)编程积累(1)在实践中积累(2)注重交流5.1M文件1)概念:用户把要实现的命令写在一个以m文件作为扩展名的文件中,然后由系统进行解释,运行出结果。2)格式:函数式M文件和脚本式M文件。(1)函数式M文件:第1句以Fu
2、nction语句作为引导;(2)脚本式M文件:命令的简单叠加,与批处理文件类似。5.1.1基本概念(3)相同之处:以m文件作为扩展名的文本文件,都不进入命令窗口,而是由文本编辑器来创建外部文本文件;(4)不同之处:函数式M文件和脚本式M文件与MATLAB在通信方面不同;脚本式M文件运行产生的所有变量都是全局变量;而函数式M文件的所有变量除特别声明外,均是局部变量;在MATLAB中的M文件绝大多数是函数式M文件。5.1.2M文件的建立与编辑1.建立新M文件:(1)菜单操作:MATLAB命令窗口的File菜单→New菜单项→M-file命令
3、。(2)命令操作:输入命令edit。(3)命令按钮操作:单击命令窗口工具栏上的“新建”2.编辑已有M文件:!!注意:可在其它文本环境下编辑。例5.1建立一个脚本文件将变量a,b的值互换,然后运行该脚本文件。1)首先建立脚本文件并以文件名exch.m存盘:clear;a=1:10;b=[11,12,15,14;15,16,17,18];c=a;a=b;b=c;ab2)然后,在MATLAB的命令窗口中输入exch,将会执行该脚本文件。例5.2建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。1)首先建立函数文件fexch.
4、m:function[a,b]=exch(a,b)c=a;a=b;b=c;2)然后在命令窗口调用该函数文件:clear;x=1:10;y=[11,12,15,14;15,16,17,18];[x,y]=fexch(x,y)5.1.3M文件性能剖析MATLAB提供的程序评述器可以记录程序中每一步的运行时间;评述(profile)文件是提高文件运行的一种方法。5.2数据的输入输出5.2.1input函数1)调用格式为:A=input(提示信息,选项);2)说明:(1)提示信息为一个字符串,用于提示用户输入什么样的数据。(2)如果在input
5、函数调用时采用's'选项,则允许用户输入一个字符串。例如:想输入一个人的姓名,采用命令:xm=input('What''syourname?','s')5.2.2disp函数1)调用格式:disp(输出项)2)说明:输出项既可以为字符串,也可以为矩阵。注意:用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。例5.3求一元二次方程ax2+bx+c=0的根。a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(
6、2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);5.2.3pause函数1)调用格式:pause(延迟秒数)2)说明:(1)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行;(2)若要强行中止程序的运行可使用Ctrl+C命令。5.3选择结构5.3.1if语句(3种格式)1.单分支if语句1)语句格式:if条件语句组end2)说明:当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成
7、立,则直接执行if语句的后继语句。2.双分支if语句1)语句格式:if条件语句组1else语句组2end2)说明:当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。例5.4计算分段函数值x=input('请输入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));end3.多分支if语句1)语句格式:if条件1语句组1elseif条件2语句组2……elseif条件m语句组melse语句组m+1end例5.5输入一个字符:若
8、为大写字母,则输出其后继字符;若为小写字母,则输出其前导字符;若为数字字符则输出其对应的数值;若为其他字符则原样输出。c=input('请输入一个字符','s');ifc>='A'&c<='Z'disp(s