




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab程序设计3.1脚本文件和函数文件3.2顺序结构3.3选择结构3.4循环结构3.1脚本文件和函数文件M文件可分为两大类,M脚本文件和M函数文件,这两种Matlab程序代码所编写的文件通常都是以“.m”为扩展名,因此都统称为M文件。在MATLAB窗口的文件菜单File中new再选script,即可打开脚本文件的编辑器在File菜单中new下再选function即可打开函数文件的编辑器。函数文件的标志就是以function开头MATLAB的不同版本菜单和操作稍有差异。脚本文件脚本文件可在命令行窗口直接执行的文件,也叫命令文件,直接输入文件名即可执行。例如,文件名为f1.m,则在命令窗口直接输入f1即可执行这个脚本文件,得到运行结果,其变量定义在工作空间中。函数文件函数文件是定义一个函数(function),不能在编辑器窗口直接执行,而必须以函数调用的方式来执行它。函数文件在保存时需要文件名要和函数名一致。当函数文件名与函数名不相同时,MATLAB将忽略函数名,调用时使用函数文件名。例如,函数名为f2,那么保存的文件名也应该为f2,在命令窗口调用函数时,使用如下的一般调用形式:函数名(实际参数)f2(a,b),函数的定义和调用3.2顺序结构程序设计1、数据的输入2、数据的输出3、程序的暂停1、数据的输入从键盘输入数据,则可使用input函数来实现,其格式:
A=input(提示信息,选项);其中,提示信息为字符串,用于提示用户输入什么样的数据。例如:A=input('请输入A矩阵:');如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:xm=input('What''syourname?','s')2、数据的输出Matlab提供的命令窗口输出函数主要有disp函数和fprintf函数。(1)disp函数(1)disp函数将数据输出到matlab的命令窗口disp函数的调用格式为:disp(输出项)其中,输出项既可以是字符串、也可以是矩阵。用disp函数显示矩阵时将不显示矩阵的名字,而且其格式更紧密,且不留任何没有意义的空行。输入和输出举例fprintf函数(2)用fprintf函数格式化输出数据到文件中fprintf函数显示带有相关文本的一个或多个值,允许程序员控制显示数据的方式。它在命令行窗口打印一个数据的一般格式如下:fprintf(文件句柄fid,格式format,数据data)其中fid表示由fopen函数打开的文件句柄,如果fid省略,则直接输出在屏幕上,format用于表示一个描述打印数据方式的字符串,data代表要打印的一个或多个标量或数组。format包括两方面的内容,一方面是打印文本内容;另一方面是打印内容中的数据格式。fprintf举例>>fprintf('thevalueofpiis%6.2f\n',pi)thevalueofpiis3.14打印的结果为thevalueofpiis3.14,后面带有一个换行符。转义序列%6.2f代表在本函数中的第一个数据项将占有6个字符宽度,小数点后有2位小数。fprintf函数有一个重大的局限性,只能显示复数的实部。当我们的计算结果是复数时,这个局限性将会产生错误。在这种情况下,最好用disp显示数据。format命令中格式符的意义:表7-1format命令中的格式符格式符功能%d把值作为整数来处理%e用科学记数法来显示数据%f用于格式化浮点数,并显示这个数%g用科学记数格式,或浮点数格式,根据长度最短的显示%n换行符3、程序的暂停Matlab中程序暂停函数的调用格式:pause(延时秒数)若省去延时秒数,直到用户按任意键程序继续执行,按Ctrl+C强行中止程序的执行。3.3选择结构程序设计MATLAB中可以用3种语句实现选择结构if语句switch语句try语句if语句单分支双分支多分支(1)单分支if语句格式:if条件
语句组
end如果条件成立就执行语句组,条件通常是关系表达式或逻辑表达式,当条件结果为标量时,非零表示条件成立,零表示条件不成立;当条件结果为矩阵时,如果矩阵为非空,且不包含零元素,条件成立,否则不成立。[1,2;0,3]表示条件时,条件不成立;[1,2;3,4]表示条件时,条件成立。(2)双分支if语句(2)双分支if语句格式:if条件
语句组1else
语句组2end如果条件成立则执行语句组1,否则执行语句组2。(3)多分支if语句格式:if条件1
语句组1elseif条件2
语句组2……elseif条件m
语句组melse
语句组nend【例】编写程序完成以下分段函数,要求输入x的值,输出相应的y值。【例】编写函数,完成符号函数的功能首先要定义函数,计算符号函数时,需要已知x,因此函数要有一个形式参数x,再给函数一个名字,这里用ff3,这样,函数首部即可确定为functiony=ff3(x),当x为形参时,它的值是调用函数时传递过来的,所以在函数中无需也不能再输入x,即当x为已知的,求完函数值也不在函数内打印,而是由函数名带回到调用它的位置。【例】编写函数,完成符号函数的功能【例】字母大小写转换输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。c=input('请输入一个字符:','s');ifc>='A'&&c<='Z'disp(lower(c))elseifc>='a'&&c<='z'disp(upper(c))elseifc>='0'&&c<='9'disp(str2double(c)^2)elsedisp(c)end2、switch语句switch语句是根据表达式的取值不同,分别执行不同的语句,其语句格式:switch表达式case表达式1
语句组1case表达式2
语句组2
……case表达式m
语句组motherwise
语句组nendSwitch语句举例【例7-20】输入某个学生的成绩g(假设0≤g≤100)。如果g≥90,输出“A”;80≤g<90,输出“B”;70≤g<80,输出“C”;60≤g<70,输出“D”;g<60,输出“E”。建立脚本文件,取名swi1.m,程序代码如下:x=input('输入整数成绩');switch(fix(x/10))case{9,10}disp('A')case8disp('B')case7disp('C')case6disp('D')otherwisedisp('E')end成绩等级3、try语句try语句是一种试探性执行语句,其语句格式:try
语句组1catch
语句组2endtry语句先试探执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息保留在lasterr变量中,并转去执行语句组2。Try语句举例图7-17的例子为使用try语句试探两个矩阵相乘,如果不能做矩阵乘法,就做点乘。执行C=A*B时出错,因为第一个矩阵的列数和第二个矩阵的行数不相等,不能做矩阵乘法,转去执行C=A.*B,即两个矩阵的对应元素相乘。结果C矩阵就是矩阵点乘的结果,最后输出错误信息。如果文件最后没有lasterr一行,则不会输出错误信息。3.4循环结构程序设计1、for语句2、while语句3、循环的嵌套4、break语句和continue语句for语句1、for语句(1)简单格式:for循环变量=循环初值:步长:终值
循环体语句endFor语句举例【例】一个3位整数,其各位数字的立方和等于该数本身则称为水仙花数,求出100~999之间的全部水仙花数。form=100:999;m1=fix(m/100);%求m的百位数字,fix向零方向取整P30m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend(2)for更一般的表达式:for循环变量=矩阵表达式
循环体语句end
执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“初值:增量:终值”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。【例】矩阵做循环变量。s=0;a=[65,76,56,78;98,83,74,85;76,67,78,79;…98,58,42,73;67,89,76,87];fork=as=s+k;enddisp(s');结果为:275340300271319
即将4列加在一起,得到5个学生的4门课的成绩总和,输出的是s的转置,所以是一行结果。2、while语句while语句的一般格式为:while(条件)
循环体语句end
其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环【例】用while循环求1~100间整数的和sum=0;i=1;whilei<=100
sum=sum+i;
i=i+1;endsum3、循环嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。在设计多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置。4、br
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多学科联合的妇产科疾病诊疗模式研究
- 鼠疫基本知识
- 2025年安徽省能源集团有限公司西北分公司招聘7人笔试参考题库附带答案详解
- 幼儿卫生与保健 课件汇 话题1-3 幼儿生理结构特点-幼儿营养与膳食卫生
- 2024江苏连云港泽灌供热有限公司连云港东江水务有限公司招聘13人笔试参考题库附带答案详解
- 2024广东深圳市龙岗区产服集团“春雨”第二批招聘笔试笔试参考题库附带答案详解
- 2024年河北承德外县区及外埠地区项目公司生产工人岗位招聘6人笔试参考题库附带答案详解
- 2024年安庆高新吉电能源有限公司招聘3人笔试参考题库附带答案详解
- 2024四川长虹空调有限公司招聘应付会计岗位拟录用人员笔试参考题库附带答案详解
- 2024内蒙古通辽市扎鲁特旗草源农牧业投资发展集团有限公司面向社会招聘2人笔试参考题库附带答案详解
- 平安寿险退保 申请书
- 设备易损件清单-
- 质量管理的标准管理规程SMP
- 铁总建设201857号 中国铁路总公司 关于做好高速铁路开通达标评定工作的通知
- 安全隐患排查与整改流程图
- (完整版)孔子介绍-英文
- 住院患者陪检流程图
- 中国饮食文化PPT完整全套教学课件
- 2023年04月江苏南通市红十字会机关招考聘用政府购买服务岗位人员笔试参考题库附答案解析
- (完整版)EORTC生命质量测定量表QLQ-C30(V3.0)
- 意识状态的判断
评论
0/150
提交评论