资源描述:
《matlab电子教案doc (6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、新疆大学重点课程·电子教案25页共25页第四章MATLAB的程序设计4.1程序设计概述一、程序设计的步骤:1.抽象出问题的数学模型2.根据数学模型写出解决问题的数学理论算法3.选择一门语言编译系统,设计合适的数据结构并写出计算机算法4.根据计算机算法写出程序代码5.程序代码经过调试后,编译成在操作系统支持下的可执行文件,这个可执行文件便是程序设计的最终结果。二、Matlab设计的步骤:1.抽象出问题的数学模型2.根据数学模型写出解决问题的数学理论算法3.选择一门语言编译系统,设计合适的数据结构并写出计算机算法4.根据计算机算法写出Matlab的程序代码5.程序代码
2、经过调试后,成为(编译成)在Matlab支持下的可执行文件,这个可执行文件便是Matlab设计的最终结果.三、Matlab的程序代码Matlab的代码是以文件形式编辑、存储、运行的。这些文件通常是:1.M-脚本文件(M-函数文件,M-文件),它们通常是由M-file编辑器编制的,在命令窗口执行。2.GUI文件(“GUI”是图形用户界面的简称,是一个*.fig图形文件),它是由GUI编辑器编写的,通常与M-脚本文件相关联。GUI文件可视为M-脚本文件的组装器,它在命令窗口打开后,可通过鼠标来点击执行M-脚本文件。3.编写M-脚本文件是Matlab的程序设计的核心。在
3、Matlab的程序设计中以下几个问题是要关注的:l程序的结构:顺序结构,选择结构,循环结构新疆大学重点课程·电子教案25页共25页l函数的调用及参数值的传递l以上问题要通过实践学习总结4.2M文件一、M文件的建立与编辑1.建立新的M文件(1)菜单操作:MATLAB命令窗口的File菜单→New菜单项→M-file命令。(2)命令操作:在MATLAB命令窗口输入命令edit。(3)命令按钮操作:单击MATLAB命令窗口工具栏上的“新建”命令按钮。2.编辑已有的M文件二、M文件的分类分类:命令文件(ScriptFile)和函数文件(FunctionFile)。例4-1
4、建立一个命令文件将变量a,b的值互换,然后运行该命令文件。首先建立命令文件并以文件名exch.m存盘:clear;a=1:10;b=[11,12,13,14;15,16,17,18];c=a;a=b;b=c;ab然后在MATLAB的命令窗口中输入exch,将会执行该命令文件。例4-2建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。首先建立函数文件fexch.m:function[a,b]=exch(a,b)c=a;a=b;b=c;然后在MATLAB的命令窗口调用该函数文件:clear;x=1:10;y=[11,12,13,14;15,16,17
5、,18];新疆大学重点课程·电子教案25页共25页[x,y]=fexch(x,y)三、数据的输入输出1、input函数调用格式为:A=input(提示信息,选项);其中提示信息为一个字符串,用于提示用户输入什么样的数据。如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:xm=input('What''syourname?','s')2、disp函数调用格式为:disp(输出项)。其中输出项既可以为字符串,也可以为矩阵。注意:用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行
6、。例4-3求一元二次方程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(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);3、pause函数:其调用格式为:pause(延迟秒数)。如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。四、程序结构1、选择结构i
7、f语句在MATLAB中,if语句有3种格式。(1)单分支if语句语句格式为:if条件语句组end新疆大学重点课程·电子教案25页共25页当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。(2)双分支if语句语句格式为:if条件语句组1else语句组2end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。例4-4计算分段函数值。程序如下:x=input('请输入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt
8、(x+sq