资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Matlab软件与基础数学实验,MATLAB编程介绍与循环结构, MATLAB中每一个命令都是一个M-文件。, MATLAB中各种命令可以完成许多单一的任务,对于 某些较为复杂的问题,仅靠现有的命令或函数来解决,往 往是难以达到目的 。为此,要运用MATLAB编程语言编 制程序,形成M-文件。, 程序是使计算机完成各项运算的命令集,运行一个编 制好的程序,计算机会从第一条命令行开始,一行接一行 地执行相应的命令,直到终止。,MATLAB作为一种高级语言,不但可以以命 令行的方式完成操作,而且可以像大多数程序语言 一样具有结构控制语句、输入输出语句和面向对,MATLAB程序(又称为M-文件)有两种形式, 一种是可直接运行的命令文件,另一种是可供调 用的函数文件,这两种文件的扩展名相同,均为 “.m”,故称为M-文件。,象编程的能力。,MATLAB编程介绍,MATLAB程序编辑是在编辑窗口(MATLAB Editor/Debugger)中进行,程序运行结果或错误 信息显示在在命令窗口(Command Windows)中。,1 、编写M-文件的步骤,(1)打开程序编辑窗口: 点击MATLAB命令窗口工具条 上的New File图标,或点击命令窗口中的File菜单,点 击选项中的New,选择M-file, 就可打开MATLAB程序编 辑窗口(MATLAB Editor/Debugger),用户可在窗口中 编写、修改程序。,(2)保存编写的程序:在程序编写过程中,或程序编写完成后,点击工具条上的Save图标,或按F2键,再选择文件夹:MatlabWork,输入自己定义的文件名,点击保存保存文件,保存后文件名后自动加上“.m”后缀,即为M-文件。,注意:, 文件名要以字母开头中间不含空格和标点符号且不超过8个字符; 不能用数字和专用变量名作为文件名,如1,11,pi,ans,eps等。, 程序通常保存在文件夹:MatlabWork中,此路径为MATLAB软件 默认路径。, 程序若要存放到其它文件夹中,则要添加该路径到 MATLAB的路径设置中,否则程序不能连接执行。,点击编辑窗工具条上File菜单,选择Set Path,此时打开路径设置窗口,再点击Add Foider,选择你所使用的文件夹(若没有则要先新建),选定后该路径自动显示在列表的第一行或最后一行,再点击Save 保存即可。,具体操作:,2、 运行M-文件,运行一个已经编写好且存盘的M-文件有两种方法:,在MATLAB编辑窗口中对正在编辑的M-文件, 保存后可直接点击工具条上的Debug中的Run命 令运行或按F5键,即可运行当前程序,其运行结 果或信息显示在命令窗口,此时,用户可以切换 到命令窗口进行查看,之后可回到编辑窗对程序 进行修改、重新保存再次运行。,方法一:,在MATLAB命令窗口中直接输入文件名回车, 即可运行相应的M-文件。其运行结果或程序运 行中的错误信息等显示在命令窗口,此时,用 户若要修改程序则可以切换到编辑窗口进行修 改,修改后重新保存。,方法二:,当对程序进行修改保存时,当前程序将覆盖 原来程序,此时若要想保存为另外的文件,则要点 击工具条上File菜单,选择Save as,另取文件 名保存即可。,注意:,例1、 分别建立命令文件和函数文件,将华氏温度f转换 为摄氏温度c。,首先建立命令文件并以文件名yy1.m存盘。 clear; %清除工作空间中的变量 f=input(Input Fahrenheit temperature:); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入yy1,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c = 22.7778,程序1:,首先建立函数文件yy2.m。 function c=yy2(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input(Input Fahrenheit temperature:); x=yy2(y) 输出情况为: Input Fahrenheit temperature:70 c = 21.1111 x = 21.1111,程序2:,MATLAB程序的基本结构,MATLAB提供了三种基本的程序结构:顺序结构、 循环结构和选择结构。一个MATLAB程序就是使计算 机实现某一类功能任务的命令集。用户编制程序时, 需要按照解决问题的逻辑步骤和求解算法,用MATLAB 的语句和函数,按照三种基本结构逐条编写,一般一行 一条语句,便于调试和查找错误。,其中功能处理部分是核心,主要是根据处理问题的 逻辑步骤,采用循环迭加、判断推理、分步计算等 来解决问题。,程序一般包含三个部分:,数据输入、功能处理、结果输出,程序编写完成后,需要存盘,形成永久性文件, 之后可以随时对它进行调用或修改。,M-文件中的输入、输出方式,1、 输入方式,s=Any string!; %输入字符串,(1)程序中直接赋值,x=2; %输入单个值,a=1,2,3;4,5,6;7,8,0; %输入矩阵(a为3阶方阵),(2)程序运行时赋值,变量 = input( 提示符号串 );,格式:,功能:,从键盘接收数据并赋予等号左边变量。其中 提示符号串 是在命令窗口中的提示。,y=input(Please input y=); %提示语句输入,如:,x=input( x=);,当执行到此语句时,暂停程序运行,在命令窗口 中光标将停留在提示符号串后闪烁,等待从键盘接收 数据。用户从键盘输入数据并按回车键确认,继续程 序运行。其优点是每次运行可以输入不同数据,实现 人机对话。,如果在input函数调用时采用s选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:,xm=input(Whats your name?,s);,2、 输出方式,(1)直接输出,x %变量后无分号“;”,变量直接输出,disp(a); % a可以是矩阵、数组和单个值,(2)格式控制输出(fprintf命令),fprintf(x=%.3f y=%.0fn , a,b); %按指定格式输出,格式:,其中,单引号内为格式说明符:%前为提示符,%.3f为数据格式符, 通常与单引号后面的数据相对应, f指显示一实数,.3表示显示的数小数 点后3位,小数点前整数部分不限。 %.0f指显示一实数其小数部分显示 0位,结果只显示整数部分。n为换行命令符,即一行显示结束后,光标 自动换到下一行。a,b为要显示的变量,它们与前面的格式符相对应。,例:,fprintf(x=%.5f y=%.0fn, pi, sqrt(2);,结果为: x=3.14159 y=1,fprintf(x=%.5f y=%.0fn, sqrt(2) ,pi);,结果为: x=1.41412 y=3,x=input(Input x please.); y=input(Input y please.); z=x; x=y; y=z; disp(x); disp(y);,例:输入x,y的值,并将它们的值互换后输出。,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);,例:求一元二次方程ax2 +bx+c=0的根。,a=1 b=2 c=3 x1=-1+1.4142i,x2=-1-1.4142i,结果为:,若要强行中止程序的运行可使用Ctrl+C命令。,3、程序的暂停,暂停程序的执行可以使用pause函数,其调用格式为:,pause(延迟秒数),如果省略延迟时间,直接使用pause,则将暂停程序,,直到用户按任一键后程序继续执行。,MATLAB选择结构,1、单项选择判断(if-end)结构,格式:,if (condition) commands-1; end commands-2;,作用:,若条件condition成立,则执行commands-1, 再顺序执行commands-2;否则,跳过commands-1, 直接执行commands-2.,例:求任意有限数组a=a(1),a(2),a(n) 中数值最大的元素M以及所在位置k.,分析:,这是一个求n个实数中最大(最小)数的问题,可 以编制一个函数文件,随时调用。首先可以假设最大数 M=a(1),位置k=1;再从第二个数到最后一个数分别同 M比较,取较大者为M,同时保留其位置。因此,运用 循环加判断编制程序来实现。,function M,k=yy3(a) %定义函数yy3,输入变量为数组a,返回值为最大元素M及位置k n=length(a); %获取数组的长度即元素的个数n M=a(1); k=1; %将第一个元素作为最大值赋值给M,位置为1; for i=2:n %从第二个元素到最后一个元素依次进行 if a(i)M %比较后续元素与目前最大值M的大小 M=a(i); k=i; %将数值较大的元素赋值给M,同时保留位置i end %选择结构结束 end %循环结构结束,编写完成后以文件名yy3存盘(这里是函数命令程序)。此时, MATLAB函数库中多了个函数yy3.m,可进行调用。在命令 窗中试运行如下:, a=1,2.2,pi,-0.8,3.2,0; %任意给定一数组 M,k=yy3(a) %调用函数yy3 M = 3.2000 k = 5,2 、多项选择判断(if-else-end)结构,格式:,if (condition1) commands-1; elseif (condition2) commands-2; else commands-3; end commands-4;,作用 :,若条件condition1成立,则执行commands-1,再转向end, 顺序执行后续的命令commands-4;否则判断条件condition2 是否成立,若成立,则执行commands-2,再转向end执行后 续的命令;若条件condition1和条件condition2均不成立,则 执行命令集commands-3,再顺序向下执行。,例:编写一个函数将百分制成绩转换为优(A),良(B),中(C),差(D)四等级.,分析:,按照通常的等级划分,一般90-100分为优,78-89分为良, 60-77分为中,60分以下的为差,因此,可以用多项选择 判断结构来实现。,function jb=dengji(fs) %定义函数dengji,输入变量为分数fs,返回值为等级A,B,C,D if fs=90 %判断分数fs是否处在优秀级别上 jb= A ; %定义为A级 elseif fs=78 %判断分数fs是否处在良好级别上 jb= B ; %定义为B级 elseif fs=60 %判断分数fs是否处在合格级别上 jb= C ; %定义为C级 else %分数fs不处于以上任何级别上 jb= D ; %定义为D级 end %选择结构结束,编写完成后以文件名dengji存盘。此时,MATLAB函数库 中多了个函数dengji.m,可进行调用。在命令窗中试运行如 下:, jb=dengji(81) %调用函数dengji jb = B,x
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号