版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1/33表达式和运算符表达式和运算符命令文件命令文件( (程序文件程序文件) )程序设计中的流程控制程序设计中的流程控制函数文件的编写格式函数文件的编写格式数学实验第二章第二章2/33表达式表达式由变量、运算符、函数、数字组成由变量、运算符、函数、数字组成球坐标变换球坐标变换表达式和运算符表达式和运算符用赋值语句创建用赋值语句创建变量变量 变量名变量名=数据数据 变量名变量名=表达式表达式 coscosRx sincosRy sinRz x=R*cos(theta)*cos(fai);y=R*cos(theta)*sin(fai);z=R*sin(theta); 纬度纬度经度经度3/22 通信
2、卫星覆盖地球表面积通信卫星覆盖地球表面积RhS 2 R=6400;h=5400;S=2*pi*R*hS = 2.1715e+008 hR ddRdRS 22 R=6400;d=20200;S=2*pi*R*R*d/(R+d)S = 1.9544e+008常数和变量常数和变量4/33例例2.2 格林威治天文台建于格林威治天文台建于1675年年,其经度为零其经度为零,纬度为北纬纬度为北纬510。计算计算格林威治天文台在地心直角坐标格林威治天文台在地心直角坐标系中的坐标并在球面上标记系中的坐标并在球面上标记 X,Y,Z=sphere(24);mesh(X,Y,Z),hold onfai=0; the
3、ta=51*pi/180; x0=cos(theta)*cos(fai);y0=cos(theta)*sin(fai);z0=sin(theta); plot3(x0,y0,z0,ro,linewidth,2)view(124,30)5/33例例2.3 四边形柱面绘图原理和方法。四边形柱面绘图原理和方法。 设四边形顶点为设四边形顶点为(-1, -1), (1, -1), (1, 1), (-1, 1). 设柱面设柱面高为高为1,创建创建Z坐标矩阵坐标矩阵 1111100000Z创建柱面的创建柱面的X坐标和坐标和Y矩阵矩阵 1111111111X 1111111111Y-101-10100.51
4、6/33cylinder(R,N)创建单位高度绕创建单位高度绕Z轴旋转曲面,轴旋转曲面,R为母线为母线,N表示圆圈上点数表示圆圈上点数,N缺省默认值为缺省默认值为 20。Cylinder % %单位高度二十边形柱面单位高度二十边形柱面x,y,z=cylinder(1,1,4);mesh(x,y,z) % %单位高度四边形柱面单位高度四边形柱面x,y,z=cylinder(1,0,3);mesh(x,y,z) % %单位高度的三角形锥面单位高度的三角形锥面使用使用cylinder绘柱面绘柱面7/33+ 加加 - 减减 * 乘乘 .* 点乘点乘/ 右除右除 ./ 点右除点右除 左除左除 . 点左除
5、点左除 矩阵幂矩阵幂 . 点幂点幂1 .算术运算符算术运算符2.关系运算符关系运算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于3.逻辑运算符逻辑运算符 & 与与 (and) | 或或 (or) 非非 (not)表达式和运算符表达式和运算符8/33运算优先级运算优先级函数运算函数运算算术运算算术运算关系运算关系运算逻辑运算逻辑运算exp()、log()、sin()、abs()、fix()、.、.*、./、*、/、+、;、;、=、=、=&、|表达式表达式 (1+fix(pi)*mod(2,4)+2*32结果为结果为ans=26;三角形任意两边之和大于
6、第三边的逻辑表达式三角形任意两边之和大于第三边的逻辑表达式 (A) a+b=c | a+c=b | b+c=a (B) a+b=c | a+c=b | b+cc | a+cb | b+ca (D) a+bc & a+cb & b+ca 9/33命令文件计算机程序主要功能计算机程序主要功能接收数据和处理数据接收数据和处理数据,并将并将处理后的数据完整有效地提供给用户处理后的数据完整有效地提供给用户例例2.1 将地球模型取为半径为将地球模型取为半径为R=6400(km)的球体的球体,计算高度为计算高度为1万公里的地球同步卫万公里的地球同步卫星对地面的覆盖率星对地面的覆盖率在在编辑窗
7、口编辑窗口编写文件编写文件 planet.m在在命令窗口命令窗口键入键入 planet结果显示结果显示: ans = 30.4878d=10000; R=6400;S0=4*pi*R*R;S=2*pi*R*R*d/(R+d);S/S0*10010/33命令文件命令文件MATLAB命令的有序集合。命令的有序集合。 文件执行文件执行对文件中命令进行批处理,即从第一对文件中命令进行批处理,即从第一条命令开始按顺序执行,直到最后一条命令。如果条命令开始按顺序执行,直到最后一条命令。如果中间某条命令出错,则中断并输出错误信息中间某条命令出错,则中断并输出错误信息M文件分为文件分为命令文件命令文件和函数文
8、件两种和函数文件两种在编辑窗口中编写在编辑窗口中编写;保存并对文件命名;保存并对文件命名;命令窗口键入文件命令窗口键入文件名运行;名运行;观察运行结果;观察运行结果;11/33条件控制条件控制; 循环控制循环控制; 错误控制错误控制;终止运行控制终止运行控制条件控制条件控制有选择地运行程序块有选择地运行程序块1. if / elseif 语句语句例例2 .8 判润年程序判润年程序程序设计中的流程控制year=input(input year:=);n1=year/4;n2=year/100;n3=year/400;if n1=fix(n1)&n2=fix(n2) disp(是润年是润年
9、)elseif n1=fix(n1)&n3=fix(n3) disp(是润年是润年)else disp(不是润年不是润年)end润年条件有二润年条件有二能被能被4整除,但整除,但不能被不能被100整除;整除;能被能被4整除,又整除,又能被能被400整除。整除。12/331. for 循环循环语法语法: for 变量变量 =初值初值:步长:终值步长:终值 可执行语句可执行语句 end程序设计中的循环控制例例2.10 裴波拉奇数列裴波拉奇数列 n=input(input n:=); f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end f(n)f
10、(44)=70140873313/33例例2.11 程序功能如下程序功能如下:把边长为把边长为2以原点为中心的正以原点为中心的正方形旋转方形旋转pi/24,将其压缩将其压缩( (r=0.89),),重复重复24次并绘图次并绘图 xy=-1 -1;1 -1;1 1;-1 1;-1 -1; A=cos(pi/24) -sin(pi/24); %创建正交矩阵创建正交矩阵 sin(pi/24) cos(pi/24); x=xy(:,1);y=xy(:,2); %提取坐标数据提取坐标数据line(x,y),pause(1) %画线并暂停一秒画线并暂停一秒for k=1:24 xy=.89*xy*A; %
11、旋转并压缩旋转并压缩 x=xy(:,1);y=xy(:,2); line(x,y),pause(1)end-1-0.500.51-1-0.500.5114/33例例 利用帧动画方法演示马鞍面旋转过程。利用帧动画方法演示马鞍面旋转过程。 M = moviein(24);x,y=meshgrid(-6:.5:6);z=x.2-y.2; %创建马鞍面坐标数据创建马鞍面坐标数据AZ=-30;for k=1:24 mesh(x,y,z),axis off %绘图绘图 colormap(0 0 1),view(AZ,20) %旋转旋转15O axis square M(:,k)=getframe; %帧设
12、计帧设计 AZ=AZ+15;endmovie(M,2) %帧播放帧播放15/332. while循环循环 将循环体中语句循环执行直到条件不成立为止将循环体中语句循环执行直到条件不成立为止。 语法语法: while 条件表达式条件表达式 可执行语句可执行语句 end条件表达式一般由变量、数字、逻辑运算、关系运条件表达式一般由变量、数字、逻辑运算、关系运算符和一般运算符组成,以判断循环的进行和停止算符和一般运算符组成,以判断循环的进行和停止;只要表达式的值只要表达式的值(逻辑值逻辑值)结果为正确结果为正确(非非0),循环继循环继续;直到表达式值为续;直到表达式值为0,循环停止。,循环停止。程序设计
13、中的循环控制16/33 例例2.14 3n + 1 问题问题. n=input(input n=); %输入数据输入数据while n=1 r=rem(n,2); %求求n/2的余数的余数 if r = =0 n=n/2 %第一种操作第一种操作 else n=3*n+1 %第二种操作第二种操作 endend 对任一自然数对任一自然数n,按如下法则进行运算按如下法则进行运算:若若n为偶数为偶数,则将则将n除除2;若若n为奇数为奇数,则将则将n乘乘3加加1。将运算结果按将运算结果按上面法则继续运算上面法则继续运算, 重复若干次后结果最终是重复若干次后结果最终是1. n=5 16, 8, 4, 2,
14、 1程序设计中的流程控制17/333. continue 命令命令通常用于通常用于 for 或或 while 循环语句中循环语句中,与与 if 语句一起使语句一起使用用,跳过本次循环跳过本次循环,去执行下一轮循环去执行下一轮循环4. break命令命令通常用于通常用于for或或while循环语句中循环语句中,与与if语句一起使用语句一起使用,中中止本次循环止本次循环,跳出最内层循环跳出最内层循环If 条件表达式,条件表达式,break, end5. error(message)显示文本显示文本 message,并中断程序执行,并中断程序执行If 条件表达式条件表达式, error(messag
15、e), end程序设计中的流程控制18/33红红、绿两队从相距绿两队从相距100公里的地点同时出发相向行军公里的地点同时出发相向行军红队速度为红队速度为10(公里公里/小时小时)绿队速度为绿队速度为8(公里公里/小时小时)开始时开始时,通讯员骑摩托从红队出发为行进中的两队通讯员骑摩托从红队出发为行进中的两队传递消息。摩托车的速度为传递消息。摩托车的速度为60(公里公里/小时小时)往返于两队往返于两队之间之间. 每遇一队每遇一队,立即折回驶向另一队立即折回驶向另一队.当两队距离小当两队距离小于于0.2公里时公里时,摩托车停止。计算通讯员驾驶摩托车跑摩托车停止。计算通讯员驾驶摩托车跑了多少趟了多少
16、趟(从一队驶向另一队为一趟从一队驶向另一队为一趟)。例例2.15 摩托车问题摩托车问题19/33将红队、绿队和摩托车假设为将红队、绿队和摩托车假设为A、B、C三个点三个点. . A点初始位置点初始位置A=0, 速度速度va=10 (运动向右运动向右); B点初始位置点初始位置B=100, 速度速度vb=8(运动向左运动向左); C点点初始位置初始位置C=0, 速度速度vc=60 (f=1表示表示运动运动方向方向) )当当C向右运动时向右运动时, C、B相遇时间相遇时间: tk= (B A)/(8+60)当当C向左运动时向左运动时,A、C相遇时间相遇时间: tk= (B A)/(60+10)利用
17、相遇时间利用相遇时间tk、及时计算、及时计算A, B的最新的最新位置位置当当 (B A)0.2 if f= =1 tk=(B-A)/(vb+vc); else tk=(B-A)/(vc+va); end A=A+va*tk;B=B-vb*tk; plot(A,0,R.,B,0,g.),pause(1) f=-f;k=k+1;endkwhoYour variables are:A f tk vb B k va vc A=0; B=100; va=10;vb=8;vc=60;f=1;k=0;plot(A,0,ro,B,0,go),hold on21/33function 返回变量列表返回变量列表函
18、数名函数名(输入变量列表输入变量列表)%注解说明注解说明 输入变量检测输入变量检测,输出变量检测输出变量检测 函数体函数体函数文件的编写函数文件的编写函数内所有变量是局部变量,既不影响其他函数内所有变量是局部变量,既不影响其他M文件文件中同名变量,也不被其他中同名变量,也不被其他M文件中同名变量所影响文件中同名变量所影响函数文件中的输出变量要等于某个确定的表达式函数文件中的输出变量要等于某个确定的表达式函数文件的第一行必须按特定格式书写函数文件的第一行必须按特定格式书写22/33输入输入/输出输出 变量检测命令变量检测命令:nargin 、 nargout当函数文件被用户调用时当函数文件被用户
19、调用时(程序执行时程序执行时)nargin返回函数被调用时输入变量的个数。返回函数被调用时输入变量的个数。nargout返回当函数被调用时输出变量的个数。返回当函数被调用时输出变量的个数。function Y=young(n)if nargin=0,n=3;endY=eye(n);Y(:,1)=ones(n,1); for k=3:n Y(k,2:k-1)=Y(k-1,1:k-2)+Y(k-1,2:k-1); end例例2.18 杨辉三角形杨辉三角形 23/33例例2.19 设设地球半径地球半径6400km, ,以以150经差绘三维地球。经差绘三维地球。function earthface()
20、R=6400;theta,fai=meshgrid(-90:15:90,-180:15:180);theta=theta*pi/180;fai=fai*pi/180;X=R*cos(theta).*cos(fai);Y=R*cos(theta).*sin(fai);Z=R*sin(theta);colormap(0 0 1)mesh(X,Y,Z),axis off特例之一:无输入无输出变量的函数文件特例之一:无输入无输出变量的函数文件15 函数文件的编写函数文件的编写24/3312nABC例例2.24 Hanoi问题问题( (递归算法递归算法)有有A、B、C三个塔柱。柱三个塔柱。柱A上上n个有
21、孔圆盘,由上而下个有孔圆盘,由上而下由小到大叠放。要将柱由小到大叠放。要将柱A上圆盘移到柱上圆盘移到柱C上,并仍按同上,并仍按同样顺序叠放。移动圆盘过程中,不允许大圆盘压小圆样顺序叠放。移动圆盘过程中,不允许大圆盘压小圆盘,可将圆盘移至盘,可将圆盘移至A,B,C中任何一柱上。中任何一柱上。 25/33问题分析:问题分析:n张盘片,张盘片,A、B、C三根柱子三根柱子将将A做为开始塔柱做为开始塔柱,C为目标塔柱为目标塔柱,B为中间塔柱为中间塔柱。要要列出整个转移的操作过程,应用递归技术。列出整个转移的操作过程,应用递归技术。 将将A上的上的n-1个盘转移到个盘转移到B上上 将将A上第上第n号盘转移
22、到号盘转移到C上上 将将B上的上的n-1个盘转移到个盘转移到C上上。第一步是第一步是n-1个盘问题个盘问题(A开始,开始, C中间,中间, B目标目标);第二步是第二步是1个盘问题;个盘问题;第三步是第三步是n-1个盘问题个盘问题(B开始,开始, A中间,中间, C目标目标)。 将三步操作按次序编写函数文件,第一步操作和第三将三步操作按次序编写函数文件,第一步操作和第三步操作需要调用函数本身,即自己调用自己。步操作需要调用函数本身,即自己调用自己。26/33if nargin=1, A= A;B= B;C= C;endif n=1 disp(strcat(No,int2str(n),:,A,
23、- ,C) else hanoi(n-1,A,C,B); disp( strcat(No,int2str(n),:,A, - ,C) hanoi(n-1,B,A,C);end递归技术实现的关键是设置边界条件(即一个盘递归技术实现的关键是设置边界条件(即一个盘的情况)。程序运行结果表明,三个盘的汉诺塔的情况)。程序运行结果表明,三个盘的汉诺塔问题需要七步操作。问题需要七步操作。 function hanoi(n,A,B,C)%n-圆盘数圆盘数,A-开始开始,B-中间中间,C-目标目标27/33No1: A - CNo2: A - BNo1: C - BNo3: A - CNo1: B - ANo
24、2: B - CNo1: A - CNo1: A - BNo4: A - CNo1: B - CNo2: B - ANo1: C - ANo3: B - CNo1: A - BNo2: A - CNo1: B - Chanoi(3)hanoi(4)No1: A - BNo2: A - CNo1: B - CNo3: A - BNo1: C - ANo2: C - B28/33数据文件的输入方法数据文件的输入方法对于大型矩阵,用文本文件录入数据,并用对于大型矩阵,用文本文件录入数据,并用load命命令将数据载入。具体使用格式为令将数据载入。具体使用格式为 load(filename.txt) 或
25、或load filename.txt 其中,其中,filename是文件名,如是文件名,如data.txt。如果数据文件。如果数据文件上载成功,则文件名就成为变量名。上载成功,则文件名就成为变量名。 例例 某数学课成绩由三部分构成:平时某数学课成绩由三部分构成:平时10%,期中,期中30%,期末,期末60%。一个行政班学生成绩数据如下。一个行政班学生成绩数据如下编号编号平时成绩平时成绩期中成绩期中成绩期末成绩期末成绩1 99 98 972 89 95 93 29/33将成绩输入数据文件,按成绩构成比例计算每位同学将成绩输入数据文件,按成绩构成比例计算每位同学的最后成绩,并统计出各分数段的人数及
26、百分比。的最后成绩,并统计出各分数段的人数及百分比。 用记事本将成绩录入用记事本将成绩录入, ,存为文存为文本文件本文件datas.txt 将该文件拷贝到将该文件拷贝到MATLAB 工工作目录作目录( (work)下下; ; 在 命 令 窗 口 用 命 令在 命 令 窗 口 用 命 令 l o a d datas.txt将数据文件装入内存将数据文件装入内存30/33处理数据程序如下:处理数据程序如下: score=0.1*datas(:,1)+0.3*datas(:,2)+0.6*datas(:,3); N=length(score); %统计总人数统计总人数II=find(score=60&score=70&score=80&score = 9 0 ) ; F 4 = l e n g t h ( I I ) ; fansu=F0,F1,F2,F3,F4 %显示各分数段人数显示各分数段人数format bankR=fans
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省兴宁市高二生物下册期末考试考试卷及完整答案(夺冠)
- 2026年吉林省洮南市高二生物下册期末考试测试卷(有一套)附答案
- 2026年云南省宣威市高二生物下册期末考试检测卷带答案(基础题)
- 2026年湖南省醴陵市高二生物下册期末考试试卷附完整答案(考点梳理)
- 2026年贵州省仁怀市高二生物下册期末考试试卷及答案(各地真题)
- 2026年海南省万宁市高二生物下册期末考试测试卷附参考答案(预热题)
- 2025年吉林省舒兰市高二生物下册期末考试考试卷及参考答案【研优卷】
- 2026年安徽省桐城市高二生物下册期末考试模拟卷含答案(B卷)
- 2025年江苏省邳州市高二生物下册期末考试考试卷及完整答案1套
- 2025年黑龙江省同江市高二生物下册期末考试检测卷附答案【综合卷】
- 2026年湖南省郴州市初二地理生物会考真题试卷(+答案)
- 大众id4销售合同
- 天然气使用安全检查培训课件
- 2026辽宁沈阳市文体旅产业发展集团所属企业沈阳出版社有限公司招聘2人考试参考题库及答案解析
- HJ 1472-2026 水质 9种微囊藻毒素的测定 液相色谱-三重四极杆质谱法
- 2026 年高考(江苏卷)生物试题及答案
- 浙江能源集团校招面试题及答案
- 无人机野外作业飞行安全手册
- (新教材)2026年春期部编人教版二年级下册道德与法治教学计划及进度表(新教材)
- 2026年腹腔引流护理考试试题及答案
- TSMCA2001-2020钢结构焊工技术资格考试认定标准
评论
0/150
提交评论