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

下载本文档

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

文档简介

1、光学软件基础及应用光学软件基础及应用MATLAB2010-2011 第二学期安徽工业大学 光信息科学与技术2MATLAB必须掌握的计算机语言之一必须掌握的计算机语言之一o 科学研究的强大辅助工具科学研究的强大辅助工具o 数学运算:线性代数数学运算:线性代数/微积分微积分/概率统计概率统计o 专业课学习工具:应光、物光专业课学习工具:应光、物光o 工程或生活中实际问题的解决工具工程或生活中实际问题的解决工具第一章第一章 认识认识MATLAB2010-2011 第二学期安徽工业大学 光信息科学与技术41.1 MATLAB简介简介o 美国美国MathWorks公司推出的科学及工程计算公司推出的科学及

2、工程计算软件软件数学家数学家-软件专家软件专家-各领域专家各领域专家共同共同编写实现编写实现o MATRIX和和LABORATORY的缩写的缩写-矩阵实验室矩阵实验室2010-2011 第二学期安徽工业大学 光信息科学与技术51.2 MATLAB的产生和发展的产生和发展o 1980年产生年产生美国新墨西哥州大学计算机系美国新墨西哥州大学计算机系主任主任Cleve Moler为解决为解决“线性代数线性代数”课程的矩课程的矩阵运算问题而开发的接口程序阵运算问题而开发的接口程序o 1983年春天年春天工程师工程师John Little与与Moler、Steve Bangert一起开发了第二代专业版一

3、起开发了第二代专业版MATLAB(用(用C语言编写实现)语言编写实现)o 1984年年MathWorks公司成立公司成立2010-2011 第二学期安徽工业大学 光信息科学与技术6o 强大的强大的科学计算科学计算、数据处理能力、数据处理能力n 基本的计算、科研和工程计算的最新研究成果基本的计算、科研和工程计算的最新研究成果o 出色的出色的图形图形处理与显示能力处理与显示能力o 功能强大的模块集和功能强大的模块集和专业工具箱专业工具箱n 符号运算、优化、图像处理、偏微分方程工具箱符号运算、优化、图像处理、偏微分方程工具箱o 可编程可编程解决复杂问题解决复杂问题M文件文件o 丰富的丰富的程序接口程

4、序接口C语言、语言、ZEMAXo 丰富的丰富的联机帮助系统联机帮助系统1.3 MATLAB的功能的功能2010-2011 第二学期安徽工业大学 光信息科学与技术7MATLAB的其他应用的其他应用2010-2011 第二学期安徽工业大学 光信息科学与技术81.4 MATLAB的软件界面的软件界面命令窗口命令窗口历史记录窗口历史记录窗口工作变量空间工作变量空间2010-2011 第二学期安徽工业大学 光信息科学与技术91.5 MATLAB的软件显示调整的软件显示调整改成自己喜欢的字体改成自己喜欢的字体第二章第二章 MATLAB的基本运算的基本运算2010-2011 第二学期安徽工业大学 光信息科学

5、与技术112.1 MATLAB的基本使用的基本使用o 直接在命令窗口输入要计算的内容直接在命令窗口输入要计算的内容o MATLAB语句形式为语句形式为: 变量变量 = 表达式表达式n 无需事先定义变量无需事先定义变量o 回车后语句执行,窗口显示语句执行结果回车后语句执行,窗口显示语句执行结果2010-2011 第二学期安徽工业大学 光信息科学与技术122.1 MATLAB的基本使用的基本使用光标闪烁等待输入命令光标闪烁等待输入命令2010-2011 第二学期安徽工业大学 光信息科学与技术13常用的命令及其功能常用的命令及其功能o clc 擦去命令窗口内容擦去命令窗口内容o clear 消除工作

6、空间所有变量消除工作空间所有变量o clear 变量名变量名 消除指定的变量消除指定的变量o help 命令名命令名 查询所列命令的帮助信息查询所列命令的帮助信息o 调用上一行命令调用上一行命令o Ctrl + C 中断程序运行中断程序运行2010-2011 第二学期安徽工业大学 光信息科学与技术142.2 MATLAB的变量的变量o 变量命名规则变量命名规则n 变量变量区分字母大小写区分字母大小写n 名字不能超过名字不能超过3131个字符,超过部分被忽略个字符,超过部分被忽略n 变量必须以英文字母开头,之后可以使用字母、变量必须以英文字母开头,之后可以使用字母、数字、下划线,但数字、下划线,

7、但不能使用空格和标点符号不能使用空格和标点符号2010-2011 第二学期安徽工业大学 光信息科学与技术152.2 MATLAB的特殊变量的特殊变量常量常量特殊变量特殊变量 取值取值 ans 用于结果的缺省变量名用于结果的缺省变量名 pi 圆周率圆周率 eps 计算机的最小数计算机的最小数 inf 无穷大无穷大 如如 1/0 nan 不定值不定值0/0 i 或者或者 j i=j=1- - nargin 函数的输入变量数目函数的输入变量数目 nargout 函数的输出变量数目函数的输出变量数目 realmin 最小的可用正实数最小的可用正实数 realmax 最大的可用正实数最大的可用正实数 编

8、写函数时使用编写函数时使用复数计算时使用复数计算时使用2010-2011 第二学期安徽工业大学 光信息科学与技术162.2 MATLAB的变量显示格式的变量显示格式o MATLAB中所有的量为双精度浮点数中所有的量为双精度浮点数o 改变显示格式命令:改变显示格式命令:format 格式格式n 常用的格式有常用的格式有o bank (2个十进制位个十进制位) hex (十六进制十六进制)o short (缺省缺省) short e (5位加指数位加指数)o long (16位位) long e (16位加指数位加指数) o rat (有理数近似有理数近似)o 改变显示格式并不改变变量本身改变显示

9、格式并不改变变量本身2010-2011 第二学期安徽工业大学 光信息科学与技术172.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空格空

10、格+ +分号分号 a=1,2,34,5,6a = 1 2 3 4 5 6逗号逗号+ +回车回车2010-2011 第二学期安徽工业大学 光信息科学与技术182.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 冒号冒号“ : ”的使用的使用2010-20

11、11 第二学期安徽工业大学 光信息科学与技术192.3 MATLAB的基本矩阵运算的基本矩阵运算o 矩阵矩阵按列编址按列编址o 元素访问的另一种方式元素访问的另一种方式* 获取矩阵大小函数获取矩阵大小函数size: size(a)=3 4147102581136912编址规则:编址规则:a(10)=4a(8)=8对对mn矩阵而言矩阵而言:a(i,j)=a(i+(j-1)*m)2010-2011 第二学期安徽工业大学 光信息科学与技术202.3 MATLAB的基本矩阵运算的基本矩阵运算o 特殊行向量创建方法特殊行向量创建方法n 线性等间距线性等间距初值初值:步长步长:终值终值n 函数函数lins

12、paceo linspace(x1,x2)o linspace(x1,x2,N)n 函数函数logspace2010-2011 第二学期安徽工业大学 光信息科学与技术212.3 MATLAB的基本矩阵运算的基本矩阵运算o 矩阵创建的其他方法矩阵创建的其他方法n 现有矩阵增加或提取元素现有矩阵增加或提取元素n 读取数据文件,如读取数据文件,如TXT、Excel、Mat文件文件n 利用特殊矩阵生成函数利用特殊矩阵生成函数o 全全0矩阵:矩阵:zeros()o 全全1矩阵:矩阵:ones()o 单位矩阵:单位矩阵:eye()2010-2011 第二学期安徽工业大学 光信息科学与技术222.3 MAT

13、LAB的基本矩阵运算的基本矩阵运算o 矩阵的基本运算矩阵的基本运算n 四则运算:四则运算:+ - * / n 点乘点乘(点除点除):.* ./ .n 矩阵乘方矩阵乘方: n 矩阵矩阵元素乘方元素乘方: .n 矩阵的转置矩阵的转置: o 注意点注意点n 运算对象为矩阵运算对象为矩阵n 元素运算勿忘使用元素运算勿忘使用“点点”矩阵左除矩阵左除/ /右除运算右除运算矩阵点乘除运算矩阵点乘除运算2010-2011 第二学期安徽工业大学 光信息科学与技术232.4 MATLAB的矩阵运算函数的矩阵运算函数o 矩阵元素的运算函数(矩阵元素的运算函数(Array Operation)n abs、sqrt、s

14、in、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 62010-2011 第二学期安徽工业大学 光信息科学与技术242.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名数学表达数学表达Matlab函数命令函数命令幂函数幂函数x.asqrt(x)=x.(1/2)指数函数指数函数a.xexp(x)对数函数对数函数log(x)log2(x)log1

15、0(x)xaxeaxxxlnx2logx10log2010-2011 第二学期安徽工业大学 光信息科学与技术252.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名解释解释Matlab函数命令函数命令 三三 角角 函函 数数sin(x)cos(x)tan(x)cot(x)sec(x)csc(x)xsinxcosxtanxcotxsecxcsc2010-2011 第二学期安徽工业大学 光信息科学与技术262.4 MATLAB的矩阵元素运算函数的矩阵元素运算函数函数名函数名解释解释Matlab函数命令函数命令反反三三角角函函数数asin(x)acos(x)atan(x)acot(x

16、)asec(x)acsc(x)绝对值函数绝对值函数abs(x)xarcsinxarccosxarctanxarccotxarcsecxarccscx2010-2011 第二学期安徽工业大学 光信息科学与技术272.5 MATLAB关系运算关系运算 =o 关系运算符关系运算符n任何非零数值都为真任何非零数值都为真 (1)n用于流程控制用于流程控制o 举例举例:数学关系数学关系运算符运算符小于小于小于或等于小于或等于大于或等于大于或等于 =等于等于= =不等于不等于 =2010-2011 第二学期安徽工业大学 光信息科学与技术282.5 MATLAB逻辑运算逻辑运算o 逻辑运算符逻辑运算符n用于流

17、程控制用于流程控制o 位方式的逻辑运算函数位方式的逻辑运算函数逻辑关系逻辑关系运算符运算符与与&或或|非非异或异或xor位方式位方式-与与bitand位方式位方式-或或bitor位方式位方式-异或异或bitxor位比较运算位比较运算bitcmp移位运算移位运算bitshift第三章第三章 MATLAB的基本绘图的基本绘图EDOF CPM 3D-MTF2010-2011 第二学期安徽工业大学 光信息科学与技术303.1 MATLAB的绘图的绘图工作空间绘图工作空间绘图2010-2011 第二学期安徽工业大学 光信息科学与技术313.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o

18、绘制二维图形的命令绘制二维图形的命令n help graph2d 充分利用充分利用网络网络和和MATLAB帮助文件帮助文件学习使用学习使用MATLAB函数函数2010-2011 第二学期安徽工业大学 光信息科学与技术323.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o 基本绘图函数为基本绘图函数为n plot(x1,y1, LineSpec1,x2,y2, LineSpec2,)n 函数说明:函数说明:o x1,y1分别为分别为x轴和轴和y轴坐标值轴坐标值o LineSpec1为曲线特性选项参数,如曲线的颜色、为曲线特性选项参数,如曲线的颜色、线型、标识符号等,用单引号括起来线型、标

19、识符号等,用单引号括起来o 以逐点折线相连的方式绘制二维图形以逐点折线相连的方式绘制二维图形o 在在MATLAB Help系统中熟悉系统中熟悉Plot命令命令2010-2011 第二学期安徽工业大学 光信息科学与技术333.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o 绘图举例绘图举例o 曲线特性参数的设置方法曲线特性参数的设置方法参照帮助系统参照帮助系统x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,-bo,x,z,:ms)2010-2011 第二学期安徽工业大学 光信息科学与技术343.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o

20、LineSpec选项选项2010-2011 第二学期安徽工业大学 光信息科学与技术353.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o 图形标注函数图形标注函数n xlabel和和ylabel:x轴和轴和y轴名称标注轴名称标注n title:图形名称标注:图形名称标注n text: 图形中文字标注图形中文字标注n gtext:图形中文字标注(用鼠标确定放置位置):图形中文字标注(用鼠标确定放置位置)n legend:图形中各曲线标注:图形中各曲线标注2010-2011 第二学期安徽工业大学 光信息科学与技术363.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o 图形标注举例图

21、形标注举例n 注意转义字符的输入注意转义字符的输入xlabel(-pi leq Theta leq pi)ylabel(sin(Theta)title(Plot of sin(Theta)text(-pi/4,sin(-pi/4),leftarrow sin(-pidiv4), HorizontalAlignment,left)xlabelylabeltitletext2010-2011 第二学期安徽工业大学 光信息科学与技术373.2 MATLAB的绘图的绘图二维绘图函数二维绘图函数o 其他重要相关命令(对照其他重要相关命令(对照help自学)自学)n axes:设置坐标轴:设置坐标轴n h

22、old :hold on 保持当前绘图窗口继续做图保持当前绘图窗口继续做图n grid:grid on/off打开打开/关闭图形网格关闭图形网格n figure:打开:打开/创建图形窗口,如创建图形窗口,如figure (4)n subplot(m,n,p): 将绘图窗口分成将绘图窗口分成mn个子区域,在第个子区域,在第p个区域绘制图形;个区域绘制图形;n close:关闭当前图形窗口:关闭当前图形窗口o 其他二维绘图函数:其他二维绘图函数:fplot、ezplot、2010-2011 第二学期安徽工业大学 光信息科学与技术383.2 MATLAB的绘图的绘图步骤总结步骤总结准备数据准备数据设

23、置当前绘图区设置当前绘图区绘制图形绘制图形设置曲线特征和标记特征设置曲线特征和标记特征设置坐标轴和网格线属性设置坐标轴和网格线属性标注图形标注图形保存和导出图形保存和导出图形2010-2011 第二学期安徽工业大学 光信息科学与技术393.3 MATLAB的绘图的绘图三维绘图函数三维绘图函数o 绘制三维图形的命令绘制三维图形的命令nhelp graph3do 三维图形的特征控制三维图形的特征控制nColor controlnLightingnColor mapsnTransparencynAxis controlnViewpoint controlnCamera control2010-201

24、1 第二学期安徽工业大学 光信息科学与技术403.3 MATLAB的绘图的绘图三维曲线绘制三维曲线绘制o 三维曲线绘制函数为三维曲线绘制函数为n plot3(x1,y1, z1, LineSpec1,x2,y2, z2, LineSpec2,)n 函数说明:函数说明:o x1, y1, z1分别为分别为x轴、轴、y轴和轴和z轴坐标值轴坐标值o LineSpec1为曲线特性选项参数,同为曲线特性选项参数,同plot中参数中参数o 以逐点折线相连的方式绘制三维图形以逐点折线相连的方式绘制三维图形2010-2011 第二学期安徽工业大学 光信息科学与技术413.3 MATLAB的绘图的绘图三维曲线绘

25、制三维曲线绘制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)2010-2011 第二学期安徽工业大学 光信息科学与技术423.3 MATLAB的绘图的绘图三维网格曲面绘制三维网格曲面绘制o 三维网格曲面绘制函数为三维网格曲面绘制函数为n mesh (X,Y,Z, C)n 函数说明:函数说明:o X,Y,Z都是矩阵都是矩阵o 参数参数C表示网格曲面颜色分布表示网格曲面颜色分布o 创建网格曲面创

26、建网格曲面2010-2011 第二学期安徽工业大学 光信息科学与技术433.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)2010-2011 第二学期安徽工业大学 光信息科学与技术443.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

27、2 3 1 2 3(x,y)= (1,4) (2,4) (3,4) (1,5) (2,5) (3,5) (1,6) (2,6) (3,6) (1,7) (2,7) (3,7)f2010-2011 第二学期安徽工业大学 光信息科学与技术453.3 MATLAB的绘图的绘图三维阴影曲面绘制三维阴影曲面绘制o 三维阴影曲面绘制函数为三维阴影曲面绘制函数为n surf (X,Y,Z, C)n 函数说明:函数说明:o X,Y,Z都是矩阵都是矩阵o 参数参数C表示网格曲面颜色分布表示网格曲面颜色分布o 创建阴影曲面创建阴影曲面2010-2011 第二学期安徽工业大学 光信息科学与技术463.3 MATLA

28、B的绘图的绘图三维阴影曲面绘制三维阴影曲面绘制o 绘图举例绘图举例x=-2:0.1:2;y=-3:0.1:3;X,Y=meshgrid(x,y);Z=X.2+Y.2;surf(X,Y,Z)xlabel(x);ylabel(y);zlabel(z)2010-2011 第二学期安徽工业大学 光信息科学与技术473.3 MATLAB绘图绘图网格和阴影曲面对比网格和阴影曲面对比网格曲面网格曲面阴影曲面阴影曲面网格曲面的网格是彩色,并且根据网格曲面的网格是彩色,并且根据z z值改变;值改变;阴影曲面的网格是黑色,网格区域内用颜色填充;阴影曲面的网格是黑色,网格区域内用颜色填充;2010-2011 第二学

29、期安徽工业大学 光信息科学与技术483.4 MATLAB绘图绘图其他图形绘制其他图形绘制o 直方图直方图 histo 柱状图柱状图 baro 面积图面积图 areao 饼图饼图 pieo 火柴杆图火柴杆图 stemo 等高线图等高线图 contouro 向量图向量图 quivero 第四章第四章 MATLAB的符号运算的符号运算2010-2011 第二学期安徽工业大学 光信息科学与技术504.1 MATLAB的符号运算介绍的符号运算介绍o 符号数学工具箱:符号数学工具箱:Symbolic Math Toolboxo 符号数学工具箱对字符串进行符号分析,不是符号数学工具箱对字符串进行符号分析,不

30、是基于数组的数值分析基于数组的数值分析o 符号数学工具箱可以实现的功能符号数学工具箱可以实现的功能n 多项式的合并、简化多项式的合并、简化n 求解代数方程求解代数方程n 微分、积分、极限微分、积分、极限n 微分方程微分方程n 2010-2011 第二学期安徽工业大学 光信息科学与技术514.2 MATLAB的符号运算的符号运算符号表达式符号表达式o 符号表达式符号表达式n 代表数字、函数、算子和变量的代表数字、函数、算子和变量的MATLAB字符字符串,或字符串数组串,或字符串数组o 符号数学符号数学n 与代数和微积分所学到的求解方法一样与代数和微积分所学到的求解方法一样2010-2011 第二

31、学期安徽工业大学 光信息科学与技术524.3 MATLAB的符号运算的符号运算符号对象建立符号对象建立o sym函数:用来建立单个符号量函数:用来建立单个符号量n 调用格式:符号量名调用格式:符号量名=sym(符号字符串符号字符串)n 符号字符串可以是常量、变量、函数或表达式符号字符串可以是常量、变量、函数或表达式n 举例:举例:U=sym(3*x2+5*y+2*x*y+6)o syms函数:定义多个符号变量函数:定义多个符号变量n 调用格式调用格式: syms 符号变量符号变量1 符号变量符号变量2 n 变量间用空格隔开,不能用逗号变量间用空格隔开,不能用逗号n 举例:举例:syms x y

32、; U=3*x2+5*y+2*x*y+6;6253),(2xyyxyxU2010-2011 第二学期安徽工业大学 光信息科学与技术534.4 MATLAB的符号运算的符号运算四则运算四则运算o 分解因式:分解因式:factor(S)o 展开:展开:expand(S)o 合并同类项:合并同类项:collect(S)o 化简:化简:simplify(S)o )3)(2(652-xxxx2010-2011 第二学期安徽工业大学 光信息科学与技术544.5 MATLAB的符号运算的符号运算微分运算微分运算o diff:微分运算函数:微分运算函数o 格式:格式:diff (f,x,n) 求解求解f关于关

33、于x的的n阶导数阶导数o 举例:举例:f(x)=xsinx的一的一/二二/三阶导数计算三阶导数计算 ?)sin(dxxxd?)sin(22dxxxd2010-2011 第二学期安徽工业大学 光信息科学与技术554.5 MATLAB的符号运算的符号运算积分运算积分运算o int:积分运算函数:积分运算函数o 格式:格式:n int (f,x) 求解求解f关于关于x的的不定积分不定积分n int (f,x,x0,x1) 求解求解f关于关于x在在x0 x1上的上的定积分定积分o 举例:举例:?)1ln(dxxx?)1ln(10dxxx2010-2011 第二学期安徽工业大学 光信息科学与技术564.

34、6 MATLAB的符号运算的符号运算其他运算其他运算Help-符号数学工具箱-Function Reference第五章第五章 MATLAB的编程的编程2010-2011 第二学期安徽工业大学 光信息科学与技术585.1 MATLAB的编程介绍的编程介绍o M文件编程文件编程:除了在命令窗口输入命令执行外,除了在命令窗口输入命令执行外,还可以向还可以向 C 语言一样采用编程方式;语言一样采用编程方式;文件名后缀为文件名后缀为.m2010-2011 第二学期安徽工业大学 光信息科学与技术595.1 MATLAB的编程介绍的编程介绍o M文件创建及文件创建及M文件编辑器认识文件编辑器认识调试调试/

35、断点功能断点功能2010-2011 第二学期安徽工业大学 光信息科学与技术605.1 MATLAB的编程介绍的编程介绍o M文件分类文件分类n 脚本(命令)文件脚本(命令)文件:只是一些命令行的组合,其中:只是一些命令行的组合,其中的所有变量也成为工作变量空间的一部分。的所有变量也成为工作变量空间的一部分。n 函数文件函数文件:单独功能的代码块,需要接受参数输入:单独功能的代码块,需要接受参数输入和输出,函数和输出,函数M文件具有独立的内部变量空间。文件具有独立的内部变量空间。o MATLAB提供的大部分函数都用函数文件实现。提供的大部分函数都用函数文件实现。2010-2011 第二学期安徽工

36、业大学 光信息科学与技术615.2 MATLAB的编程的编程脚本文件编程脚本文件编程o 脚本文件脚本文件n 注释语句注释语句n 消除命令消除命令n 定义变量定义变量n 功能实现功能实现n 结果显示结果显示2010-2011 第二学期安徽工业大学 光信息科学与技术625.2 MATLAB的编程的编程脚本文件编程脚本文件编程o 脚本文件的运行脚本文件的运行n 将脚本文件保存为将脚本文件保存为*.m文件文件(上例为(上例为primeNumber.m)n 方式一:直接在方式一:直接在M文件编辑器中点击文件编辑器中点击“RUN”按钮按钮n 方式二:在方式二:在MATLAB命令窗口输入文件名并回车命令窗口

37、输入文件名并回车2010-2011 第二学期安徽工业大学 光信息科学与技术635.2 MATLAB的编程的编程脚本文件编程脚本文件编程o 脚本文件编程提示:脚本文件编程提示:n 用用clear 、close all等语句开始,清除原有的变量和图形等语句开始,清除原有的变量和图形n 注释行以注释行以%号号开始,增加程序的可读性开始,增加程序的可读性n 如果不想显示结果,语句结尾用如果不想显示结果,语句结尾用分号分号2010-2011 第二学期安徽工业大学 光信息科学与技术645.3 MATLAB的编程的编程函数文件编程函数文件编程o 函数文件函数文件n 函数声明函数声明n 帮助文字帮助文字n 函

38、数实现函数实现n 注释部分注释部分2010-2011 第二学期安徽工业大学 光信息科学与技术655.3 MATLAB的编程的编程函数文件编程函数文件编程o 函数文件的使用方法函数文件的使用方法n 在脚本文件中进行调用在脚本文件中进行调用n 直接在命令窗口进行调用直接在命令窗口进行调用2010-2011 第二学期安徽工业大学 光信息科学与技术665.3 MATLAB的编程的编程函数文件编程函数文件编程o 函数文件编程提示:函数文件编程提示:n 函数文件由函数文件由function起头,后面跟函数名起头,后面跟函数名;n 函数名必须与文件名相同函数名必须与文件名相同n 输出变量多于一个时,要用方括

39、号,输出变量多于一个时,要用方括号,o 举例:举例: function x,y,z=fun(a,b,c)2010-2011 第二学期安徽工业大学 光信息科学与技术675.4 MATLAB的编程的编程流程控制语句流程控制语句o 分支控制语句分支控制语句n if结构结构n switch结构结构o 循环控制语句循环控制语句n for循环循环n while循环循环n continue语句语句n break语句语句o 程序终止语句:程序终止语句:return语句语句2010-2011 第二学期安徽工业大学 光信息科学与技术685.4.1 MATLAB的编程的编程分支控制分支控制-if结构结构o if-e

40、lse结构:结构:if logical_expression1 commands1elseif logical_expression2 commands2elseif else commandsend 和和C语言原理一致语言原理一致 注意语法格式的差异注意语法格式的差异 elseif和和else语句为可语句为可选语句选语句2010-2011 第二学期安徽工业大学 光信息科学与技术695.4.1 MATLAB的编程的编程分支控制分支控制-switch结构结构o switch结构:结构:switch 表达式(标量或字符串)表达式(标量或字符串) case 值值1 语句组语句组A case 值值2

41、语句组语句组B . otherwise 语句组语句组Nend otherwise语句为可语句为可选语句选语句 和和C语言的重要语法语言的重要语法区别:区别:每一个每一个case语语句后面不需要句后面不需要break语句跳出;语句跳出;2010-2011 第二学期安徽工业大学 光信息科学与技术705.4.2 MATLAB的编程的编程循环控制循环控制-for循环循环o for循环:一般用于已知循环次数的情况循环:一般用于已知循环次数的情况for index=start:increment:end commandend index为循环变量,为循环变量,increment为增量,默认值为为增量,默认

42、值为1 index可以赋值为数组可以赋值为数组A,第,第n次循环时,次循环时,index被赋值为被赋值为A(:,n),即,即A的第的第n列元素列元素 MATLAB中循环效率很低,尽量充分使用数组结构中循环效率很低,尽量充分使用数组结构2010-2011 第二学期安徽工业大学 光信息科学与技术715.4.2 MATLAB的编程的编程循环控制循环控制-while循环循环o while循环:一般用于已知循环结束条件情况循环:一般用于已知循环结束条件情况while expression commondsend 表达式表达式expression为真,就执行语句,直至结果为假为真,就执行语句,直至结果为假

43、2010-2011 第二学期安徽工业大学 光信息科学与技术725.4.3 MATLAB的编程的编程其他控制语句其他控制语句o continue语句语句n 用在循环中,表示用在循环中,表示本次循环不再继续本次循环不再继续向下执行,进向下执行,进入下一次循环;入下一次循环;o break语句语句n 退出循环退出循环 return语句语句n 终止程序运行,用于需要立即退出的特殊情况等终止程序运行,用于需要立即退出的特殊情况等2010-2011 第二学期安徽工业大学 光信息科学与技术735.5 MATLAB的编程的编程交互交互命令命令p echo on/off: 在执行在执行M文件每行程序前先显示其内

44、容文件每行程序前先显示其内容p keyboard: 程序执行到此暂停,在屏幕上显示字符程序执行到此暂停,在屏幕上显示字符K,用户可以在命令窗进行任何操作用户可以在命令窗进行任何操作,最后键入字符串,最后键入字符串return,恢复运行原来的程序,恢复运行原来的程序。p input (提示符提示符) : 程序执行到此暂停,屏幕显示引号程序执行到此暂停,屏幕显示引号中的字符串,要求用户输入数据。数据输入后,程序中的字符串,要求用户输入数据。数据输入后,程序继续运行。继续运行。举例:举例:N=input(N=); p c (control-c) : 强行停止程序运行的命令强行停止程序运行的命令201

45、0-2011 第二学期安徽工业大学 光信息科学与技术745.6 MATLAB的编程举例的编程举例光线追迹光线追迹p 例例:用:用MATLAB编程作图分析不同颜色的平编程作图分析不同颜色的平行光轴的光线通过平凸透镜聚焦的光路情况。行光轴的光线通过平凸透镜聚焦的光路情况。O12dF中心厚度为中心厚度为3mm凸面曲率半径为凸面曲率半径为100mm 波长波长 折射率折射率 480.0 - 1.523-蓝色蓝色 550.0 - 1.519-绿色绿色 632.8 - 1.515-红色红色2010-2011 第二学期安徽工业大学 光信息科学与技术755.6 MATLAB的编程举例的编程举例光线追迹光线追迹p

46、 光学分析光学分析 以球心为坐标原点以球心为坐标原点O12dFhABC1.光线经过透镜的第一个面后方向不变光线经过透镜的第一个面后方向不变2.光线经过透镜第二个面时发生折射:光线经过透镜第二个面时发生折射:假设平行入射光距离光轴的距离为假设平行入射光距离光轴的距离为h 入射角为:入射角为: 折射定律:折射定律: 光线在透镜中经过的距离为:光线在透镜中经过的距离为:2010-2011 第二学期安徽工业大学 光信息科学与技术765.6 MATLAB的编程举例的编程举例光线追迹光线追迹p 编程思路编程思路p 绘制平凸透镜绘制平凸透镜p 绘制平面:确定绘制平面:确定X和和Y数组用数组用plot命令实现

47、命令实现p 绘制凸面:直接用绘制凸面:直接用fplot命令绘制命令绘制p 绘制多条平行光线通过透镜前后的直线绘制多条平行光线通过透镜前后的直线p 透镜曲面前的光线:透镜曲面前的光线:plotp 经过透镜曲面后的折射光线:经过透镜曲面后的折射光线:plot2010-2011 第二学期安徽工业大学 光信息科学与技术775.6 MATLAB的编程举例的编程举例光线追迹光线追迹o 光线追迹部分编程要考虑的内容光线追迹部分编程要考虑的内容n入射光线的波长可以改变入射光线的波长可以改变n入射光线的视场范围可以改变入射光线的视场范围可以改变n要绘制的光线的数目可以调整要绘制的光线的数目可以调整n绘制的光线的颜色根据波长不同可以进行设置绘制的光线的颜色根据波长不同可以进行设置o 光线追迹设置成函数光线追迹设置成函数 raysPlot(DL,DH,ND,R,d,n,str)nDL/DH:确定考察的光线的范围;:确定考察的光线的范围;nND:光线数

温馨提示

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

评论

0/150

提交评论