matlab三边测量算法横纵坐标图解=_第1页
matlab三边测量算法横纵坐标图解=_第2页
matlab三边测量算法横纵坐标图解=_第3页
matlab三边测量算法横纵坐标图解=_第4页
matlab三边测量算法横纵坐标图解=_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB 程序设计方法程序设计方法 I命令文件命令文件( (程序文件程序文件) )表达式和运算符表达式和运算符程序设计中的流程控制程序设计中的流程控制练习与思考题练习与思考题2/22表达式表达式由变量、运算符、函数、数字组成由变量、运算符、函数、数字组成球坐标变换球坐标变换表达式和运算符表达式和运算符用赋值语句创建用赋值语句创建变量变量 变量名变量名=数据数据 变量名变量名=表达式表达式 coscosRx sincosRy sinRz x=R*cos(theta)*cos(fai);y=R*cos(theta)*sin(fai);z=R*sin(theta); 纬度纬度经度经度3/22例例

2、2.2 格林威治天文台建于格林威治天文台建于1675年年,其纬度为北纬其纬度为北纬510。设地球半径为设地球半径为R=6400(km),试计算格林威治天试计算格林威治天文台在地心直角坐标系中的坐标文台在地心直角坐标系中的坐标 R=6400;fai=0; theta=51*pi/180; x=R*cos(theta)*cos(fai);y=R*cos(theta)*sin(fai);z=R*sin(theta);Op=x,y,z Op = 4027.65 0 4973.734/22+ 加加 - 减减 * 乘乘 .* 点乘点乘/ 右除右除 ./ 点右除点右除 左除左除 . 点左除点左除 矩阵幂矩阵

3、幂 . 点幂点幂1 .算术运算符算术运算符2.关系运算符关系运算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于3.逻辑运算符逻辑运算符 & 与与 (and) | 或或 (or) 非非 (not)表达式和运算符表达式和运算符5/22运算优先级运算优先级函数运算函数运算算术运算算术运算关系运算关系运算逻辑运算逻辑运算exp()、log()、sin()、abs()、fix()、.、.*、./、*、/、+、;、;、=、=、=&、|表达式表达式 (1+fix(pi)*mod(2,4)+2*32结果为结果为ans=26;三角形任意两边之和大于第三边的逻辑表达式

4、三角形任意两边之和大于第三边的逻辑表达式 (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 6/22命令文件计算机程序主要功能计算机程序主要功能接收数据和处理数据接收数据和处理数据,并将并将处理后的数据完整有效地提供给用户处理后的数据完整有效地提供给用户例例2.1 将地球模型取为半径为将地球模型取为半径为R=6400(km)的球体的球体,计算高度为计算高度为1万公里的地球同步卫万公里的地球同步卫星对地面的覆盖率星对地面的覆盖率在在编辑窗口编辑窗口编写文件

5、编写文件 planet.m在在命令窗口命令窗口键入键入 planet结果显示结果显示: ans = 30.4878R=6400;S0=4*pi*R*R;d=10000;S=2*pi*R*R*d/(R+d);S/S0*1007/22命令文件命令文件MATLAB命令的有序集合。命令的有序集合。 文件执行文件执行对文件中命令进行批处理,即从第一对文件中命令进行批处理,即从第一条命令开始按顺序执行,直到最后一条命令。如果条命令开始按顺序执行,直到最后一条命令。如果中间某条命令出错,则中断并输出错误信息中间某条命令出错,则中断并输出错误信息M文件分为文件分为命令文件命令文件和函数文件两种和函数文件两种在

6、编辑窗口中编写在编辑窗口中编写;保存并对文件命名;保存并对文件命名;命令窗口键入文件命令窗口键入文件名运行;名运行;观察运行结果;观察运行结果;8/22例例2.3直线平行于直线平行于Z Z轴沿轴沿x-y平面上的四边形移动,形平面上的四边形移动,形成四边形柱面。利用矩阵方法绘制四边形柱面成四边形柱面。利用矩阵方法绘制四边形柱面. . 设四边形顶点为设四边形顶点为(-1, -1), (1, -1), (1, 1), (-1, 1).由于四边由于四边形是封闭的图形,将第五个点设为第一个点。设柱面形是封闭的图形,将第五个点设为第一个点。设柱面高为高为1,创建创建Z坐标矩阵坐标矩阵 1111100000

7、Z创建柱面的创建柱面的X坐标和坐标和Y矩阵矩阵 1111111111X 1111111111Y-101-10100.519/22x=-1,1,1,-1,-1; %确定四边形确定四边形X坐标坐标y=-1,-1,1,1,-1; %确定四边形确定四边形Y坐标坐标X=1;1*x ;Y=1;1*y; %创建创建X和和Y坐标矩阵坐标矩阵Z=0;1*ones(1,5); %创建柱面创建柱面Z坐标矩阵坐标矩阵mesh(X,Y,Z) %绘图绘图colormap(0 0 0) %设定黑色设定黑色axis off %去掉坐标框架去掉坐标框架按顺序录入以下语句创建程序文件按顺序录入以下语句创建程序文件cylind1.

8、m比较比较cylinder(1,1,4)-101-10100.5110/22例例2.7 成都地理位置成都地理位置: :北纬北纬30o, ,东经东经104o; ;北京地理位北京地理位置置: :北纬北纬40o, ,东经东经116o。计算两城市距离近似值。计算两城市距离近似值。 由两城市经纬度可计算出地心直角坐标系的坐标由两城市经纬度可计算出地心直角坐标系的坐标P1( (x1,y1,z1) ),P2( (x2,y2,z2) )向径之间的角度向径之间的角度 )arccos(2212121Rzzyyxx 球面短程线计算公式球面短程线计算公式 RL输入经纬度数据和地球半径;输入经纬度数据和地球半径;转换两

9、城市的经纬度为地心直角坐标数据;转换两城市的经纬度为地心直角坐标数据;提取两个点的向径坐标;提取两个点的向径坐标;计算向径间的夹角和短程线长度并输出计算结果计算向径间的夹角和短程线长度并输出计算结果。11/22datas=30,104;40,116; % %输入经纬度数据输入经纬度数据R=6400;theta=datas(:,1)*pi/180; %弧度制转换弧度制转换fai=datas(:,2)*pi/180;x=R*cos(theta).*cos(fai); %直角坐标转换直角坐标转换y=R*cos(theta).*sin(fai);z=R*sin(theta);Op1=x(1),y(1)

10、,z(1); %第一城市坐标第一城市坐标Op2=x(2),y(2),z(2); %第二城市坐标第二城市坐标d=R*acos(Op1*Op2/(R*R) % %计算并显示距离计算并显示距离 按顺序录入程序文件按顺序录入程序文件(文件名文件名:distance.m)在命令窗口运行程序在命令窗口运行程序distance,屏幕将显示屏幕将显示:d =1563.4212/22条件控制条件控制; 循环控制循环控制; 错误控制错误控制;终止运行控制终止运行控制条件控制条件控制有选择地运行程序块有选择地运行程序块1. if / elseif 语句语句例例2 .8 判润年程序判润年程序程序设计中的流程控制yea

11、r=input(input year:=);n1=year/4;n2=year/100;n3=year/400;if n1=fix(n1)&n2=fix(n2) disp(是润年是润年)elseif n1=fix(n1)&n3=fix(n3) disp(是润年是润年)else disp(不是润年不是润年)end润年条件有二润年条件有二能被能被4整除,但整除,但不能被不能被100整除;整除;能被能被4整除,又整除,又能被能被400整除。整除。13/221. for 循环循环语法语法: for 变量变量 =初值初值:步长:终值步长:终值 可执行语句可执行语句 end程序设计中的循环

12、控制例例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(44)=70140873314/22例例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

13、); x=xy(:,1);y=xy(:,2); %提取坐标数据提取坐标数据line(x,y),pause(1) %画线并暂停一秒画线并暂停一秒for k=1:24 xy=.89*xy*A; %旋转并压缩旋转并压缩 x=xy(:,1);y=xy(:,2); line(x,y),pause(1)end-1-0.500.51-1-0.500.5115/22例例2.12空间四面体底面是一三角形空间四面体底面是一三角形,将三角形三个顶将三角形三个顶点与四面体顶部的顶点相连接就形成三角形锥面点与四面体顶部的顶点相连接就形成三角形锥面。利利用用MATLAB的帧动画方法演示一个四面体旋转过程。的帧动画方法演示

14、一个四面体旋转过程。 M = moviein(16);X,Y,Z=cylinder(1,0,3); %创建四面体坐标创建四面体坐标A=cos(pi/8) -sin(pi/8);sin(pi/8) cos(pi/8);for k=1:16 mesh(X,Y,Z),axis off %绘图绘图 colormap(0 0 1),view(-30,40) M(:,k)=getframe; %帧设计帧设计 xy=A*X(1,:);Y(1,:); %旋转旋转 x=xy(1,:);X=1;0*x; %坐标提取扩充矩阵坐标提取扩充矩阵 y=xy(2,:);Y=1;0*y;endmovie(M,5) %帧播放帧

15、播放 16/222. while循环循环 将循环体中语句循环执行直到条件不成立为止将循环体中语句循环执行直到条件不成立为止。 语法语法: while 条件表达式条件表达式 可执行语句可执行语句 end条件表达式一般由变量、数字、逻辑运算、关系运条件表达式一般由变量、数字、逻辑运算、关系运算符和一般运算符组成,以判断循环的进行和停止算符和一般运算符组成,以判断循环的进行和停止;只要表达式的值只要表达式的值(逻辑值逻辑值)结果为正确结果为正确(非非0),循环继循环继续;直到表达式值为续;直到表达式值为0,循环停止。,循环停止。程序设计中的循环控制17/22 例例2.14 3n + 1 问题问题.

16、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, 1程序设计中的流程控制18/223. continue 命令命

17、令通常用于通常用于 for 或或 while 循环语句中循环语句中,与与 if 语句一起使语句一起使用用,跳过本次循环跳过本次循环,去执行下一轮循环去执行下一轮循环4. break命令命令通常用于通常用于for或或while循环语句中循环语句中,与与if语句一起使用语句一起使用,中中止本次循环止本次循环,跳出最内层循环跳出最内层循环If 条件表达式,条件表达式,break, end5. error(message)显示文本显示文本 message,并中断程序执行,并中断程序执行If 条件表达式条件表达式, error(message), end程序设计中的流程控制19/22如果一个正整数如果一

18、个正整数 n 只能被只能被1和它自身整除,则称这个和它自身整除,则称这个数为素数数为素数(或质数或质数)。例如:。例如:2、3、5、7、11、例例2.16 用试商法判别素数用试商法判别素数n=input(input n:=); for k=2:n-1 if mod(n,k)=0,break,end %中止循环中止循环endif k heroinput a:=3input b:=4input c:=8? Error using = hero输入错误输入错误, ,三角形两边之和大于第三边三角形两边之和大于第三边if a+bc | a+cb | b+ca error(输入错误输入错误,三角形两边之和大于第三边三角形两边之和大于第三边)end21/22立方倍积问题实验。作一立方体立方倍积问题实验。作一立方体,使其体积等于单位正使其体积等于单位正方体的两倍方体的两倍.对边长取不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论