光学软件基础及应用_第1页
光学软件基础及应用_第2页
光学软件基础及应用_第3页
光学软件基础及应用_第4页
光学软件基础及应用_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

1、光学软件基础及应用第一页,共85页。MATLAB必须掌握的计算机语言之一必须掌握的计算机语言之一o科学研究的强大辅助工具科学研究的强大辅助工具o数学运算:线性代数数学运算:线性代数/微积分微积分/概率统计概率统计o专业课学习工具:应光、物光专业课学习工具:应光、物光o工程或生活中实际问题的解决工具工程或生活中实际问题的解决工具第二页,共85页。第一章第一章 认识认识MATLAB第三页,共85页。1.1 MATLAB简介简介o美国美国MathWorks公司推出的科学及工程计公司推出的科学及工程计算软件算软件数学家数学家-软件专家软件专家-各领域专家各领域专家共共同编写实现同编写实现oMATRIX

2、和和LABORATORY的缩写的缩写-矩阵实验室矩阵实验室第四页,共85页。1.2 MATLAB的产生和发展的产生和发展o1980年产生年产生美国新墨西哥州大学计算机系美国新墨西哥州大学计算机系主任主任Cleve Moler为解决为解决“线性代数线性代数”课程的矩课程的矩阵运算问题而开发的接口程序阵运算问题而开发的接口程序o1983年春天年春天工程师工程师John Little与与Moler、Steve Bangert一起开发了第二代专业版一起开发了第二代专业版MATLAB(用(用C语言编写实现)语言编写实现)o1984年年MathWorks公司成立公司成立第五页,共85页。o强大的强大的科学

3、计算科学计算、数据处理能力、数据处理能力n基本的计算、科研和工程计算的最新研究成果基本的计算、科研和工程计算的最新研究成果o出色的出色的图形图形处理与显示能力处理与显示能力o功能强大的模块集和功能强大的模块集和专业工具箱专业工具箱n符号运算、优化、图像处理、偏微分方程工具箱符号运算、优化、图像处理、偏微分方程工具箱o可编程可编程解决复杂问题解决复杂问题M文件文件o丰富的丰富的程序接口程序接口C语言、语言、ZEMAXo丰富的丰富的联机帮助系统联机帮助系统1.3 MATLAB的功能的功能第六页,共85页。MATLAB的其他应用的其他应用第七页,共85页。1.4 MATLAB的软件界面的软件界面命令

4、窗口命令窗口历史记录窗口历史记录窗口工作变量空间工作变量空间第八页,共85页。1.5 MATLAB的软件显示调整的软件显示调整改成自己喜欢的字体改成自己喜欢的字体第九页,共85页。第二章第二章 MATLAB的基本运算的基本运算第十页,共85页。2.1 MATLAB的基本使用的基本使用o直接在命令窗口输入要计算的内容直接在命令窗口输入要计算的内容oMATLAB语句形式为语句形式为: 变量变量 = 表达式表达式n无需事先定义变量无需事先定义变量o回车后语句执行,窗口显示语句执行结果回车后语句执行,窗口显示语句执行结果第十一页,共85页。2.1 MATLAB的基本使用的基本使用光标闪烁等待输入命令光

5、标闪烁等待输入命令第十二页,共85页。常用的命令及其功能常用的命令及其功能oclc 擦去命令窗口内容擦去命令窗口内容oclear 消除工作空间所有变量消除工作空间所有变量oclear 变量名变量名 消除指定的变量消除指定的变量ohelp 命令名命令名 查询所列命令的帮助信息查询所列命令的帮助信息o 调用上一行命令调用上一行命令oCtrl + C 中断程序运行中断程序运行第十三页,共85页。2.2 MATLAB的变量的变量o变量命名规则变量命名规则n变量变量区分字母大小写区分字母大小写n名字不能超过名字不能超过3131个字符,超过部分被忽略个字符,超过部分被忽略n变量必须以英文字母开头,之后可以

6、使用字母、变量必须以英文字母开头,之后可以使用字母、数字、下划线,但数字、下划线,但不能使用空格和标点符号不能使用空格和标点符号第十四页,共85页。2.2 MATLAB的特殊变量的特殊变量常量常量特殊变量特殊变量 取值取值 ans 用于结果的缺省变量名用于结果的缺省变量名 pi 圆周率圆周率 eps 计算机的最小数计算机的最小数 inf 无穷大无穷大 如如 1/0 nan 不定值不定值0/0 i 或者或者 j i=j=1- - nargin 函数的输入变量数目函数的输入变量数目 nargout 函数的输出变量数目函数的输出变量数目 realmin 最小的可用正实数最小的可用正实数 realma

7、x 最大的可用正实数最大的可用正实数 编写函数时使用编写函数时使用复数计算时使用复数计算时使用第十五页,共85页。2.2 MATLAB的变量显示格式的变量显示格式oMATLAB中所有的量为双精度浮点数中所有的量为双精度浮点数o改变显示格式命令:改变显示格式命令:format 格式格式n常用的格式有常用的格式有obank (2个十进制位个十进制位) hex (十六进制十六进制)oshort (缺省缺省) short e (5位加指数位加指数)olong (16位位) long e (16位加指数位加指数) orat (有理数近似有理数近似)o改变显示格式并不改变变量本身改变显示格式并不改变变量本

8、身第十六页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o矩阵的直接输入创建:和数组的格式相似矩阵的直接输入创建:和数组的格式相似n以以“ ”开始,以开始,以“ ”结束结束n每一行元素结束每一行元素结束用行结束符号(分号或回车)分隔用行结束符号(分号或回车)分隔n同一行元素之间同一行元素之间用元素分隔符号(空格或用元素分隔符号(空格或 , )分隔)分隔举例举例:创建:创建23的矩阵,第一行为的矩阵,第一行为1/2/3,第二行为,第二行为4/5/6 a= 1 2 3; 4 5 6a = 1 2 3 4 5 6空格空格+ +分号分号 a=1,2,34,5,6a = 1 2 3 4 5

9、 6逗号逗号+ +回车回车第十七页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o对矩阵元素的访问对矩阵元素的访问n单个元素的访问:单个元素的访问:a(2,1) = 0n整行元素的访问:整行元素的访问:a(2,:) = 0 9 8 7n整列元素的访问:整列元素的访问:a(:,3) = 3; 8; 6n某块元素的访问:某块元素的访问:a(2:3, 3:4) = 8 7;6 5o注意点注意点n下标从下标从1开始开始n冒号冒号“ : ”的使用的使用第十八页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o矩阵矩阵按列编址按列编址o元素访问的另一种方式元素访问的另一种方式*

10、获取矩阵大小函数获取矩阵大小函数size: size(a)=3 4147102581136912编址规则:编址规则:a(10)=4a(8)=8对对mn矩阵而言矩阵而言:a(i,j)=a(i+(j-1)*m)第十九页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o特殊行向量创建方法特殊行向量创建方法n线性等间距线性等间距初值初值:步长步长:终值终值n函数函数linspaceolinspace(x1,x2)olinspace(x1,x2,N)n函数函数logspace第二十页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o矩阵创建的其他方法矩阵创建的其他方法n现有矩阵增

11、加或提取元素现有矩阵增加或提取元素n读取数据文件,如读取数据文件,如TXT、Excel、Mat文件文件n利用特殊矩阵生成函数利用特殊矩阵生成函数o全全0矩阵:矩阵:zeros()o全全1矩阵:矩阵:ones()o单位矩阵:单位矩阵:eye()第二十一页,共85页。2.3 MATLAB的基本矩阵运算的基本矩阵运算o矩阵的基本运算矩阵的基本运算n四则运算:四则运算:+ - * / n点乘点乘(点除点除):.* ./ .n矩阵乘方矩阵乘方: n矩阵矩阵元素乘方元素乘方: .n矩阵的转置矩阵的转置: o注意点注意点n运算对象为矩阵运算对象为矩阵n元素运算勿忘使用元素运算勿忘使用“点点”矩阵左除矩阵左除

12、/ /右除运算右除运算矩阵点乘除运算矩阵点乘除运算第二十二页,共85页。2.4 MATLAB的矩阵运算函数的矩阵运算函数o矩阵元素的运算函数(矩阵元素的运算函数(Array Operation)nabs、sqrt、sin、cos函数可以在矩阵上直接使用,函数可以在矩阵上直接使用,只不过只不过对矩阵的每个元素对矩阵的每个元素进行处理进行处理 sqrt(a)ans = 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 a=1 2 3; 4 5 6a = 1 2 3 4 5 6第二十三页,共85页。2.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名

13、数学表达数学表达Matlab函数命令函数命令幂函数幂函数x.asqrt(x)=x.(1/2)指数函数指数函数a.xexp(x)对数函数对数函数log(x)log2(x)log10(x)xaxeaxxxlnx2logx10log第二十四页,共85页。2.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名解释解释Matlab函数命令函数命令 三三 角角 函函 数数sin(x)cos(x)tan(x)cot(x)sec(x)csc(x)xsinxcosxtanxcotxsecxcsc第二十五页,共85页。2.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名解释解释Mat

14、lab函数命令函数命令反反三三角角函函数数asin(x)acos(x)atan(x)acot(x)asec(x)acsc(x)绝对值函数绝对值函数abs(x)xarcsinxarccosxarctanxarccotxarcsecxarccscx第二十六页,共85页。2.5 MATLAB关系运算关系运算 =o关系运算符关系运算符n任何非零数值都为真任何非零数值都为真 (1)n用于流程控制用于流程控制o举例举例:数学关系数学关系运算符运算符小于小于小于或等于小于或等于大于或等于大于或等于 =等于等于= =不等于不等于 =第二十七页,共85页。2.5 MATLAB逻辑运算逻辑运算o逻辑运算符逻辑运算

15、符n用于流程控制用于流程控制o位方式的逻辑运算函数位方式的逻辑运算函数逻辑关系逻辑关系运算符运算符与与&或或|非非异或异或xor位方式位方式-与与bitand位方式位方式-或或bitor位方式位方式-异或异或bitxor位比较运算位比较运算bitcmp移位运算移位运算bitshift第二十八页,共85页。第三章第三章 MATLAB的基本绘图的基本绘图EDOF CPM 3D-MTF第二十九页,共85页。3.1 MATLAB的绘图的绘图工作空间绘图工作空间绘图第三十页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o绘制二维图形的命令绘制二维图形的命令nhelp gra

16、ph2d 充分利用充分利用网络网络和和MATLAB帮助文件帮助文件学习使用学习使用MATLAB函数函数第三十一页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o基本绘图函数为基本绘图函数为nplot(x1,y1, LineSpec1,x2,y2, LineSpec2,)n函数说明:函数说明:ox1,y1分别为分别为x轴和轴和y轴坐标值轴坐标值oLineSpec1为曲线特性选项参数,如曲线的颜色、为曲线特性选项参数,如曲线的颜色、线型、标识符号等,用单引号括起来线型、标识符号等,用单引号括起来o以逐点折线相连的方式绘制二维图形以逐点折线相连的方式绘制二维图形o在在MATLA

17、B Help系统中熟悉系统中熟悉Plot命令命令第三十二页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o绘图举例绘图举例o曲线特性参数的设置方法曲线特性参数的设置方法参照帮助系统参照帮助系统x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,-bo,x,z,:ms)第三十三页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数oLineSpec选项选项第三十四页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o图形标注函数图形标注函数nxlabel和和ylabel:x轴和轴和y轴名称标注轴名称标注nt

18、itle:图形名称标注:图形名称标注ntext: 图形中文字标注图形中文字标注ngtext:图形中文字标注(用鼠标确定放置位置):图形中文字标注(用鼠标确定放置位置)nlegend:图形中各曲线标注:图形中各曲线标注第三十五页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o图形标注举例图形标注举例n注意转义字符的输入注意转义字符的输入xlabel(-pi leq Theta leq pi)ylabel(sin(Theta)title(Plot of sin(Theta)text(-pi/4,sin(-pi/4),leftarrow sin(-pidiv4), Horizo

19、ntalAlignment,left)xlabelylabeltitletext第三十六页,共85页。3.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o其他重要相关命令(对照其他重要相关命令(对照help自学)自学)naxes:设置坐标轴:设置坐标轴nhold :hold on 保持当前绘图窗口继续做图保持当前绘图窗口继续做图ngrid:grid on/off打开打开/关闭图形网格关闭图形网格nfigure:打开:打开/创建图形窗口,如创建图形窗口,如figure (4)nsubplot(m,n,p): 将绘图窗口分成将绘图窗口分成mn个子区域,在第个子区域,在第p个个区域绘制图形;区

20、域绘制图形;nclose:关闭当前图形窗口:关闭当前图形窗口o其他二维绘图函数:其他二维绘图函数:fplot、ezplot、第三十七页,共85页。3.2 MATLAB的绘图的绘图步骤总结步骤总结o准备数据准备数据o设置当前绘图区设置当前绘图区o绘制图形绘制图形o设置曲线特征和标记特征设置曲线特征和标记特征o设置坐标轴和网格线属性设置坐标轴和网格线属性o标注图形标注图形o保存和导出图形保存和导出图形第三十八页,共85页。3.3 MATLAB的绘图的绘图三维绘图函数三维绘图函数o绘制三维图形的命令绘制三维图形的命令nhelp graph3do三维图形的特征控制三维图形的特征控制nColor con

21、trolnLightingnColor mapsnTransparencynAxis controlnViewpoint controlnCamera control第三十九页,共85页。3.3 MATLAB的绘图的绘图三维曲线绘制三维曲线绘制o三维曲线绘制函数为三维曲线绘制函数为nplot3(x1,y1, z1, LineSpec1,x2,y2, z2, LineSpec2,)n函数说明:函数说明:ox1, y1, z1分别为分别为x轴、轴、y轴和轴和z轴坐标值轴坐标值oLineSpec1为曲线特性选项参数,同为曲线特性选项参数,同plot中参数中参数o以逐点折线相连的方式绘制三维图形以逐点

22、折线相连的方式绘制三维图形第四十页,共85页。3.3 MATLAB的绘图的绘图三维曲线绘制三维曲线绘制o绘图举例绘图举例x=0:0.1*pi:10*pi;y=sin(x);z=cos(x);plot3(x,y,z,-b)grid onxlabel(x);ylabel(sinx);zlabel(cosx);title(Example 3D curve)第四十一页,共85页。3.3 MATLAB的绘图的绘图三维网格曲面绘制三维网格曲面绘制o三维网格曲面绘制函数为三维网格曲面绘制函数为nmesh (X,Y,Z, C)n函数说明:函数说明:oX,Y,Z都是矩阵都是矩阵o参数参数C表示网格曲面颜色分布表

23、示网格曲面颜色分布o创建网格曲面创建网格曲面第四十二页,共85页。3.3 MATLAB的绘图的绘图三维网格曲面绘制三维网格曲面绘制o绘图举例绘图举例x=-2:0.1:2;y=-3:0.1:3;X,Y=meshgrid(x,y);Z=X.2+Y.2;mesh(X,Y,Z)xlabel(x);ylabel(y);zlabel(z)第四十三页,共85页。3.3 MATLAB的绘图的绘图meshgrid函数应用函数应用 X,Y = meshgrid(1:3,4:7)Y = 4 4 4 5 5 5 6 6 6 7 7 7X = 1 2 3 1 2 3 1 2 3 1 2 3(x,y)= (1,4) (2

24、,4) (3,4) (1,5) (2,5) (3,5) (1,6) (2,6) (3,6) (1,7) (2,7) (3,7)f第四十四页,共85页。3.3 MATLAB的绘图的绘图三维阴影曲面绘制三维阴影曲面绘制o三维阴影曲面绘制函数为三维阴影曲面绘制函数为nsurf (X,Y,Z, C)n函数说明:函数说明:oX,Y,Z都是矩阵都是矩阵o参数参数C表示网格曲面颜色分布表示网格曲面颜色分布o创建阴影曲面创建阴影曲面第四十五页,共85页。3.3 MATLAB的绘图的绘图三维阴影曲面绘制三维阴影曲面绘制o绘图举例绘图举例x=-2:0.1:2;y=-3:0.1:3;X,Y=meshgrid(x,y

25、);Z=X.2+Y.2;surf(X,Y,Z)xlabel(x);ylabel(y);zlabel(z)第四十六页,共85页。3.3 MATLAB绘图绘图网格和阴影曲面对比网格和阴影曲面对比网格曲面网格曲面阴影曲面阴影曲面网格曲面的网格是彩色,并且根据网格曲面的网格是彩色,并且根据z z值改变;值改变;阴影曲面的网格是黑色,网格区域内用颜色填充;阴影曲面的网格是黑色,网格区域内用颜色填充;第四十七页,共85页。3.4 MATLAB绘图绘图其他图形绘制其他图形绘制o直方图直方图 histo柱状图柱状图 baro面积图面积图 areao饼图饼图 pieo火柴杆图火柴杆图 stemo等高线图等高线图

26、 contouro向量图向量图 quivero第四十八页,共85页。第四章第四章 MATLAB的符号运算的符号运算第四十九页,共85页。4.1 MATLAB的符号运算介绍的符号运算介绍o符号数学工具箱:符号数学工具箱:Symbolic Math Toolboxo符号数学工具箱对字符串进行符号分析,不是基符号数学工具箱对字符串进行符号分析,不是基于数组的数值分析于数组的数值分析o符号数学工具箱可以实现的功能符号数学工具箱可以实现的功能n多项式的合并、简化多项式的合并、简化n求解代数方程求解代数方程n微分、积分、极限微分、积分、极限n微分方程微分方程n第五十页,共85页。4.2 MATLAB的符号

27、运算的符号运算符号表达式符号表达式o符号表达式符号表达式n代表数字、函数、算子和变量的代表数字、函数、算子和变量的MATLAB字符字符串,或字符串数组串,或字符串数组o符号数学符号数学n与代数和微积分所学到的求解方法一样与代数和微积分所学到的求解方法一样第五十一页,共85页。4.3 MATLAB的符号运算的符号运算符号对象建立符号对象建立osym函数:用来建立单个符号量函数:用来建立单个符号量n调用格式:符号量名调用格式:符号量名=sym(符号字符串符号字符串)n符号字符串可以是常量、变量、函数或表达式符号字符串可以是常量、变量、函数或表达式n举例:举例:U=sym(3*x2+5*y+2*x*

28、y+6)osyms函数:定义多个符号变量函数:定义多个符号变量n调用格式调用格式: syms 符号变量符号变量1 符号变量符号变量2 n变量间用空格隔开,不能用逗号变量间用空格隔开,不能用逗号n举例:举例:syms x y; U=3*x2+5*y+2*x*y+6;6253),(2xyyxyxU第五十二页,共85页。4.4 MATLAB的符号运算的符号运算四则运算四则运算o分解因式:分解因式:factor(S)o展开:展开:expand(S)o合并同类项:合并同类项:collect(S)o化简:化简:simplify(S)o)3)(2(652-xxxx第五十三页,共85页。4.5 MATLAB的

29、符号运算的符号运算微分运算微分运算odiff:微分运算函数:微分运算函数o格式:格式:diff (f,x,n) 求解求解f关于关于x的的n阶导数阶导数o举例:举例:f(x)=xsinx的一的一/二二/三阶导数计算三阶导数计算 ?)sin(dxxxd?)sin(22dxxxd第五十四页,共85页。4.5 MATLAB的符号运算的符号运算积分运算积分运算oint:积分运算函数:积分运算函数o格式:格式:nint (f,x) 求解求解f关于关于x的的不定积分不定积分nint (f,x,x0,x1) 求解求解f关于关于x在在x0 x1上的上的定积分定积分o举例:举例:?)1ln(dxxx?)1ln(1

30、0dxxx第五十五页,共85页。4.6 MATLAB的符号运算的符号运算其他运算其他运算Help-符号数学工具箱-Function Reference第五十六页,共85页。第五章第五章 MATLAB的编程的编程第五十七页,共85页。5.1 MATLAB的编程介绍的编程介绍oM文件编程文件编程:除了在命令窗口输入命令执行外,除了在命令窗口输入命令执行外,还可以向还可以向 C 语言一样采用编程方式;语言一样采用编程方式;文件名后缀为文件名后缀为.m第五十八页,共85页。5.1 MATLAB的编程介绍的编程介绍oM文件创建及文件创建及M文件编辑器认识文件编辑器认识调试调试/断点功能断点功能第五十九页

31、,共85页。5.1 MATLAB的编程介绍的编程介绍oM文件分类文件分类n脚本(命令)文件脚本(命令)文件:只是一些命令行的组合,其中的:只是一些命令行的组合,其中的所有变量也成为工作变量空间的一部分。所有变量也成为工作变量空间的一部分。n函数文件函数文件:单独功能的代码块,需要接受参数输入和输出,:单独功能的代码块,需要接受参数输入和输出,函数函数M文件具有独立的内部变量空间。文件具有独立的内部变量空间。oMATLAB提供的大部分函数都用函数文件实现。提供的大部分函数都用函数文件实现。第六十页,共85页。5.2 MATLAB的编程的编程脚本文件编程脚本文件编程o脚本文件脚本文件n注释语句注释

32、语句n消除命令消除命令n定义变量定义变量n功能实现功能实现n结果显示结果显示第六十一页,共85页。5.2 MATLAB的编程的编程脚本文件编程脚本文件编程o脚本文件的运行脚本文件的运行n将脚本文件保存为将脚本文件保存为*.m文件文件(上例为(上例为primeNumber.m)n方式一:直接在方式一:直接在M文件编辑器中点击文件编辑器中点击“RUN”按钮按钮n方式二:在方式二:在MATLAB命令窗口输入文件名并回车命令窗口输入文件名并回车第六十二页,共85页。5.2 MATLAB的编程的编程脚本文件编程脚本文件编程o脚本文件编程提示:脚本文件编程提示:n用用clear 、close all等语句

33、开始,清除原有的变量和图形等语句开始,清除原有的变量和图形n注释行以注释行以%号号开始,增加程序的可读性开始,增加程序的可读性n如果不想显示结果,语句结尾用如果不想显示结果,语句结尾用分号分号第六十三页,共85页。5.3 MATLAB的编程的编程函数文件编程函数文件编程o函数文件函数文件n函数声明函数声明n帮助文字帮助文字n函数实现函数实现n注释部分注释部分第六十四页,共85页。5.3 MATLAB的编程的编程函数文件编程函数文件编程o函数文件的使用方法函数文件的使用方法n在脚本文件中进行调用在脚本文件中进行调用n直接在命令窗口进行调用直接在命令窗口进行调用第六十五页,共85页。5.3 MAT

34、LAB的编程的编程函数文件编程函数文件编程o函数文件编程提示:函数文件编程提示:n函数文件由函数文件由function起头,后面跟函数名起头,后面跟函数名;n函数名必须与文件名相同函数名必须与文件名相同n输出变量多于一个时,要用方括号,输出变量多于一个时,要用方括号,o举例:举例: function x,y,z=fun(a,b,c)第六十六页,共85页。5.4 MATLAB的编程的编程流程控制语句流程控制语句o分支控制语句分支控制语句nif结构结构nswitch结构结构o循环控制语句循环控制语句nfor循环循环nwhile循环循环ncontinue语句语句nbreak语句语句o程序终止语句:程

35、序终止语句:return语句语句第六十七页,共85页。5.4.1 MATLAB的编程的编程分支控制分支控制-if结构结构oif-else结构:结构:if logical_expression1 commands1elseif logical_expression2 commands2elseif else commandsend和和C语言原理一致语言原理一致注意语法格式的差异注意语法格式的差异elseif和和else语句为可语句为可选语句选语句第六十八页,共85页。5.4.1 MATLAB的编程的编程分支控制分支控制-switch结构结构oswitch结构:结构:switch 表达式(标量或字

36、符串)表达式(标量或字符串) case 值值1 语句组语句组A case 值值2 语句组语句组B . otherwise 语句组语句组Nendotherwise语句为可选语句为可选语句语句和和C语言的重要语法区语言的重要语法区别:别:每一个每一个case语句语句后面不需要后面不需要break语语句跳出;句跳出;第六十九页,共85页。5.4.2 MATLAB的编程的编程循环控制循环控制-for循环循环ofor循环:一般用于已知循环次数的情况循环:一般用于已知循环次数的情况for index=start:increment:end commandendindex为循环变量,为循环变量,increm

37、ent为增量,默认值为为增量,默认值为1index可以赋值为数组可以赋值为数组A,第,第n次循环时,次循环时,index被赋值为被赋值为A(:,n),即,即A的第的第n列元素列元素MATLAB中循环效率很低,尽量充分使用数组结构中循环效率很低,尽量充分使用数组结构第七十页,共85页。5.4.2 MATLAB的编程的编程循环控制循环控制-while循环循环owhile循环:一般用于已知循环结束条件情况循环:一般用于已知循环结束条件情况while expression commondsend表达式表达式expression为真,就执行语句,直至结果为假为真,就执行语句,直至结果为假第七十一页,共8

38、5页。5.4.3 MATLAB的编程的编程其他控制语句其他控制语句ocontinue语句语句n用在循环中,表示用在循环中,表示本次循环不再继续本次循环不再继续向下执行,进入向下执行,进入下一次循环;下一次循环;obreak语句语句n退出循环退出循环return语句语句n终止程序运行,用于需要立即退出的特殊情况等终止程序运行,用于需要立即退出的特殊情况等第七十二页,共85页。5.5 MATLAB的编程的编程交互命令交互命令pecho on/off: 在执行在执行M文件每行程序前先显示其内容文件每行程序前先显示其内容pkeyboard: 程序执行到此暂停,在屏幕上显示字符程序执行到此暂停,在屏幕上

39、显示字符K,用户,用户可以在命令窗进行任何操作,最后键入字符串可以在命令窗进行任何操作,最后键入字符串return,恢复运,恢复运行原来的程序。行原来的程序。pinput (提示符提示符) : 程序执行到此暂停,屏幕显示引号程序执行到此暂停,屏幕显示引号中的字符串,要求用户输入数据。数据输入后,程序中的字符串,要求用户输入数据。数据输入后,程序继续运行。继续运行。举例:举例:N=input(N=); pc (control-c) : 强行停止程序运行的命令强行停止程序运行的命令第七十三页,共85页。5.6 MATLAB的编程举例的编程举例光线追迹光线追迹p例例:用:用MATLAB编程作图分析不

40、同颜色的平行光编程作图分析不同颜色的平行光轴的光线通过平凸透镜聚焦的光路情况。轴的光线通过平凸透镜聚焦的光路情况。O12dF中心厚度为中心厚度为3mm凸面曲率半径为凸面曲率半径为100mm 波长波长 折射率折射率 480.0 - 1.523-蓝色蓝色 550.0 - 1.519-绿色绿色 632.8 - 1.515-红色红色第七十四页,共85页。5.6 MATLAB的编程举例的编程举例光线追迹光线追迹p光学分析光学分析 以球心为坐标原点以球心为坐标原点O12dFhABC1.光线经过透镜的第一个面后方向不变光线经过透镜的第一个面后方向不变2.光线经过透镜第二个面时发生折射:光线经过透镜第二个面时

41、发生折射:假设平行入射光距离光轴的距离为假设平行入射光距离光轴的距离为h 入射角为:入射角为: 折射定律:折射定律: 光线在透镜中经过的距离为:光线在透镜中经过的距离为:第七十五页,共85页。5.6 MATLAB的编程举例的编程举例光线追迹光线追迹p编程思路编程思路p绘制平凸透镜绘制平凸透镜p绘制平面:确定绘制平面:确定X和和Y数组用数组用plot命令实现命令实现p绘制凸面:直接用绘制凸面:直接用fplot命令绘制命令绘制p绘制多条平行光线通过透镜前后的直线绘制多条平行光线通过透镜前后的直线p透镜曲面前的光线:透镜曲面前的光线:plotp经过透镜曲面后的折射光线:经过透镜曲面后的折射光线:plot第七十六页,共85页。5.6 MATLAB的编程举例的编程举例光线追迹光线追迹o光线追迹部分编程要考虑的内容光线追迹部分编程要考虑的内容n入射光线的波长可以改变入射光线的波长可以改变n入射光线的视场范围可以改变入射光线的视场范围可以改变n要绘制的光线的数目可以调整要绘制的光线的数目可以调整n绘制的光线的颜色根据波长不同可以进行设置绘制的光线的颜色根据波长不同可以进行设置o光线追迹设置成函数光线追迹设置成函数 raysPlot(DL,DH,ND,R,d,n,str)nDL/DH:确定考察的光线的范围;:确定考察的光线的范围;nND:光线数目设置:光线数目设置 nn:入射光

温馨提示

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

评论

0/150

提交评论