光學(xué)軟件基礎(chǔ)及應(yīng)用——Matlab-2nd.ppt_第1頁(yè)
光學(xué)軟件基礎(chǔ)及應(yīng)用——Matlab-2nd.ppt_第2頁(yè)
光學(xué)軟件基礎(chǔ)及應(yīng)用——Matlab-2nd.ppt_第3頁(yè)
光學(xué)軟件基礎(chǔ)及應(yīng)用——Matlab-2nd.ppt_第4頁(yè)
光學(xué)軟件基礎(chǔ)及應(yīng)用——Matlab-2nd.ppt_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

光學(xué)軟件基礎(chǔ)及應(yīng)用MATLAB,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,2,MATLAB必須掌握的計(jì)算機(jī)語(yǔ)言之一,科學(xué)研究的強(qiáng)大輔助工具 數(shù)學(xué)運(yùn)算:線性代數(shù)/微積分/概率統(tǒng)計(jì) 工程或生活中實(shí)際問(wèn)題的解決工具,數(shù)學(xué)軟件+專(zhuān)業(yè)工具庫(kù)+綜合開(kāi)發(fā)平臺(tái),第一章 認(rèn)識(shí)MATLAB,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,4,1.1 MATLAB簡(jiǎn)介,美國(guó)MathWorks公司推出的科學(xué)及工程計(jì)算軟件數(shù)學(xué)家-軟件專(zhuān)家-各領(lǐng)域?qū)<夜餐帉?xiě)實(shí)現(xiàn) MATRIX和LABORATORY的縮寫(xiě)-矩陣實(shí)驗(yàn)室,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,5,1.2 MATLAB的產(chǎn)生和發(fā)展,1980年產(chǎn)生美國(guó)新墨西哥州大學(xué)計(jì)算機(jī)系主任Cleve Moler為解決“線性代數(shù)”課程的矩陣運(yùn)算問(wèn)題而開(kāi)發(fā)的接口程序 1983年春天工程師John Little與Moler、Steve Bangert一起開(kāi)發(fā)了第二代專(zhuān)業(yè)版MATLAB(用C語(yǔ)言編寫(xiě)實(shí)現(xiàn)) 1984年MathWorks公司成立,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,6,強(qiáng)大的科學(xué)計(jì)算、數(shù)據(jù)處理能力 基本的計(jì)算、科研和工程計(jì)算的最新研究成果 出色的圖形處理與顯示能力 功能強(qiáng)大的模塊集和專(zhuān)業(yè)工具箱 符號(hào)運(yùn)算、優(yōu)化、圖像處理、偏微分方程工具箱 可編程解決復(fù)雜問(wèn)題M文件 豐富的程序接口C語(yǔ)言、ZEMAX 豐富的聯(lián)機(jī)幫助系統(tǒng),1.3 MATLAB的功能,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,7,1.4 MATLAB的軟件界面,命令窗口,歷史記錄窗口,工作變量空間,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,8,1.5 MATLAB的軟件顯示調(diào)整,第二章 MATLAB的基本運(yùn)算,矩陣為運(yùn)算單元,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,10,2.1 MATLAB的基本使用,直接在命令窗口輸入要計(jì)算的內(nèi)容 MATLAB語(yǔ)句形式為: 變量 = 表達(dá)式 無(wú)需事先定義變量 回車(chē)后語(yǔ)句執(zhí)行,窗口顯示語(yǔ)句執(zhí)行結(jié)果,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,11,2.1 MATLAB的基本使用,光標(biāo)閃爍等待輸入命令,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,12,常用的命令及其功能,clc 擦去命令窗口內(nèi)容 clear 消除工作空間所有變量 clear 變量名 消除指定的變量 help 命令名 查詢所列命令的幫助信息 調(diào)用上一行命令 Ctrl + C 中斷程序運(yùn)行,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,13,2.2 MATLAB的變量,變量命名規(guī)則 變量區(qū)分字母大小寫(xiě) 名字不能超過(guò)31個(gè)字符,超過(guò)部分被忽略 變量必須以英文字母開(kāi)頭,之后可以使用字母、數(shù)字、下劃線,但不能使用空格和標(biāo)點(diǎn)符號(hào),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,14,2.2 MATLAB的特殊變量常量,編寫(xiě)函數(shù)時(shí)使用,復(fù)數(shù)計(jì)算時(shí)使用,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,15,2.2 MATLAB的變量顯示格式,MATLAB中所有的量為雙精度浮點(diǎn)數(shù) 改變顯示格式命令:format 格式 常用的格式有 bank (2個(gè)十進(jìn)制位) hex (十六進(jìn)制) short (缺省) short e (5位加指數(shù)) long (16位) long e (16位加指數(shù)) rat (有理數(shù)近似) 改變顯示格式并不改變變量本身,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,16,2.3 MATLAB的基本矩陣運(yùn)算,矩陣的直接輸入創(chuàng)建:和數(shù)組的格式相似 以“ ”開(kāi)始,以“ ”結(jié)束 每一行元素結(jié)束用行結(jié)束符號(hào)(分號(hào)或回車(chē))分隔 同一行元素之間用元素分隔符號(hào)(空格或 , )分隔 舉例:創(chuàng)建23的矩陣,第一行為1/2/3,第二行為4/5/6,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,17,2.3 MATLAB的基本矩陣運(yùn)算,對(duì)矩陣元素的訪問(wèn) 單個(gè)元素的訪問(wèn):a(2,1) = 0 整行元素的訪問(wèn):a(2,:) = 0 9 8 7 整列元素的訪問(wèn):a(:,3) = 3; 8; 6 某塊元素的訪問(wèn):a(2:3, 3:4) = 8 7;6 5 注意點(diǎn) 下標(biāo)從1開(kāi)始 冒號(hào)“ : ”的使用,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,18,2.3 MATLAB的基本矩陣運(yùn)算,矩陣按列編址 元素訪問(wèn)的另一種方式 * 獲取矩陣大小函數(shù)size: size(a)=3 4,編址規(guī)則:,對(duì)mn矩陣而言: a(i,j)=a(i+(j-1)*m),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,19,2.3 MATLAB的基本矩陣運(yùn)算,特殊行向量創(chuàng)建方法 線性等間距初值:步長(zhǎng):終值 函數(shù)linspace linspace(x1,x2) linspace(x1,x2,N) 函數(shù)logspace,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,20,2.3 MATLAB的基本矩陣運(yùn)算,矩陣創(chuàng)建的其他方法 現(xiàn)有矩陣增加或提取元素 讀取數(shù)據(jù)文件,如TXT、Excel、Mat文件 利用特殊矩陣生成函數(shù) 全0矩陣:zeros() 全1矩陣:ones() 單位矩陣:eye(),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,21,2.3 MATLAB的基本矩陣運(yùn)算,矩陣的基本運(yùn)算 四則運(yùn)算:+ - * / 點(diǎn)乘(點(diǎn)除):.* ./ . 矩陣乘方: 矩陣元素乘方: . 矩陣的轉(zhuǎn)置: 注意點(diǎn) 運(yùn)算對(duì)象為矩陣 元素運(yùn)算勿忘使用“點(diǎn)”,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,22,2.4 MATLAB的矩陣運(yùn)算函數(shù),矩陣元素的運(yùn)算函數(shù)(Array Operation) abs、sqrt、sin、cos函數(shù)可以在矩陣上直接使用,只不過(guò)對(duì)矩陣的每個(gè)元素進(jìn)行處理, sqrt(a) ans = 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495, a=1 2 3; 4 5 6 a = 1 2 3 4 5 6,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,23,2.4 MATLAB的矩陣元素運(yùn)算函數(shù),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,24,2.4 MATLAB的矩陣元素運(yùn)算函數(shù),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,25,2.4 MATLAB的矩陣元素運(yùn)算函數(shù),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,26,2.5 MATLAB關(guān)系運(yùn)算 =,關(guān)系運(yùn)算符 任何非零數(shù)值都為真 (1) 用于流程控制 舉例:,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,27,2.5 MATLAB邏輯運(yùn)算,邏輯運(yùn)算符 用于流程控制 位方式的邏輯運(yùn)算函數(shù),第三章 MATLAB的基本繪圖,一圖勝萬(wàn)語(yǔ),EDOF CPM 3D-MTF,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,29,3.1 MATLAB的繪圖工作空間繪圖,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,30,3.2 MATLAB的繪圖二維繪圖函數(shù),所有繪制二維圖形的命令 help graph2d 充分利用網(wǎng)絡(luò)和 MATLAB幫助文件 學(xué)習(xí)使用MATLAB函數(shù),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,31,3.2 MATLAB的繪圖二維繪圖函數(shù),基本繪圖函數(shù)為 plot(x1,y1, LineSpec1,x2,y2, LineSpec2,) 函數(shù)說(shuō)明: x1,y1分別為x軸和y軸坐標(biāo)值 LineSpec1為曲線特性選項(xiàng)參數(shù),如曲線的顏色、線型、標(biāo)識(shí)符號(hào)等,用單引號(hào)括起來(lái) 以逐點(diǎn)折線相連的方式繪制二維圖形 在MATLAB Help系統(tǒng)中熟悉Plot命令,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,32,3.2 MATLAB的繪圖二維繪圖函數(shù),繪圖舉例 曲線特性參數(shù)的設(shè)置方法參照幫助系統(tǒng),x=0:0.1*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,-bo,x,z,:ms),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,33,3.2 MATLAB的繪圖二維繪圖函數(shù),LineSpec選項(xiàng),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,34,3.2 MATLAB的繪圖二維繪圖函數(shù),圖形標(biāo)注函數(shù) xlabel和ylabel:x軸和y軸名稱(chēng)標(biāo)注 title:圖形名稱(chēng)標(biāo)注 text: 圖形中文字標(biāo)注 gtext:圖形中文字標(biāo)注(用鼠標(biāo)確定放置位置) legend:圖形中各曲線標(biāo)注,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,35,3.2 MATLAB的繪圖二維繪圖函數(shù),圖形標(biāo)注舉例 注意轉(zhuǎ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),xlabel,ylabel,title,text,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,36,3.2 MATLAB的繪圖二維繪圖函數(shù),其他重要相關(guān)命令(對(duì)照help自學(xué)) axes:設(shè)置坐標(biāo)軸 hold :hold on 保持當(dāng)前繪圖窗口繼續(xù)做圖 grid:grid on/off 打開(kāi)/關(guān)閉圖形網(wǎng)格 figure:打開(kāi)/創(chuàng)建圖形窗口,如figure (4) subplot(m,n,p): 將繪圖窗口分成mn個(gè)子區(qū)域,在第p個(gè)區(qū)域繪制圖形; close:關(guān)閉當(dāng)前圖形窗口 其他二維繪圖函數(shù):fplot、ezplot、,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,37,3.2 MATLAB的繪圖步驟總結(jié),準(zhǔn)備數(shù)據(jù) 設(shè)置當(dāng)前繪圖區(qū) 繪制圖形 設(shè)置曲線特征和標(biāo)記特征 設(shè)置坐標(biāo)軸和網(wǎng)格線屬性 標(biāo)注圖形 保存和導(dǎo)出圖形,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,38,3.3 MATLAB的繪圖三維繪圖函數(shù),所有繪制三維圖形的命令 help graph3d 三維圖形的特征控制 Color control Lighting Color maps Transparency Axis control Viewpoint control Camera control,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,39,3.3 MATLAB的繪圖三維曲線繪制,三維曲線繪制函數(shù)為 plot3(x1,y1, z1, LineSpec1,x2,y2, z2, LineSpec2,) 函數(shù)說(shuō)明: x1, y1, z1分別為x軸、y軸和z軸坐標(biāo)值 LineSpec1為曲線特性選項(xiàng)參數(shù),同plot中參數(shù) 以逐點(diǎn)折線相連的方式繪制三維圖形,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,40,3.3 MATLAB的繪圖三維曲線繪制,繪圖舉例,x=0:0.1*pi:10*pi; y=sin(x); z=cos(x); plot3(x,y,z,-b) grid on xlabel(x); ylabel(sinx); zlabel(cosx); title(Example 3D curve),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,41,3.3 MATLAB的繪圖三維網(wǎng)格曲面繪制,三維網(wǎng)格曲面繪制函數(shù)為 mesh (X,Y,Z, C) 函數(shù)說(shuō)明: X,Y,Z都是矩陣 參數(shù)C表示網(wǎng)格曲面顏色分布 創(chuàng)建網(wǎng)格曲面,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,42,3.3 MATLAB的繪圖三維網(wǎng)格曲面繪制,繪圖舉例,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上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,43,3.3 MATLAB的繪圖meshgrid函數(shù)應(yīng)用, X,Y = meshgrid(1:3,4:7),Y = 4 4 4 5 5 5 6 6 6 7 7 7,X = 1 2 3 1 2 3 1 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),f,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,44,3.3 MATLAB的繪圖三維陰影曲面繪制,三維陰影曲面繪制函數(shù)為 surf (X,Y,Z, C) 函數(shù)說(shuō)明: X,Y,Z都是矩陣 參數(shù)C表示網(wǎng)格曲面顏色分布 創(chuàng)建陰影曲面,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,45,3.3 MATLAB的繪圖三維陰影曲面繪制,繪圖舉例,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上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,46,3.3 MATLAB繪圖網(wǎng)格和陰影曲面對(duì)比,網(wǎng)格曲面,陰影曲面,網(wǎng)格曲面的網(wǎng)格是彩色,并且根據(jù)z值改變; 陰影曲面的網(wǎng)格是黑色,網(wǎng)格區(qū)域內(nèi)用顏色填充;,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,47,3.4 MATLAB繪圖其他圖形繪制,直方圖 hist 柱狀圖 bar 面積圖 area 餅圖 pie 火柴桿圖 stem 等高線圖 contour 向量圖 quiver ,第四章 MATLAB的編程,通過(guò)編程 解決實(shí)際問(wèn)題,語(yǔ)言是工具 思路最重要,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,49,4.1 MATLAB的編程介紹,M文件編程:除了在命令窗口輸入命令執(zhí)行外,還可以向 C 語(yǔ)言一樣采用編程方式;,文件名后綴為.m,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,50,4.1 MATLAB的編程介紹,M文件創(chuàng)建及M文件編輯器認(rèn)識(shí),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,51,4.1 MATLAB的編程介紹,M文件分類(lèi) 腳本(命令)文件:只是一些命令行的組合,其中的所有變量也成為工作變量空間的一部分。 函數(shù)文件:?jiǎn)为?dú)功能的代碼塊,需要接受參數(shù)輸入和輸出,函數(shù)M文件具有獨(dú)立的內(nèi)部變量空間。 MATLAB提供的大部分函數(shù)都用函數(shù)文件實(shí)現(xiàn)。,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,52,4.2 MATLAB的編程腳本文件編程,腳本文件 注釋語(yǔ)句 消除命令 定義變量 功能實(shí)現(xiàn) 結(jié)果顯示,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,53,4.2 MATLAB的編程腳本文件編程,腳本文件的運(yùn)行 將腳本文件保存為*.m文件(上例為primeNumber.m) 方式一:直接在M文件編輯器中點(diǎn)擊“RUN”按鈕 方式二:在MATLAB命令窗口輸入文件名并回車(chē),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,54,4.2 MATLAB的編程腳本文件編程,腳本文件編程提示: 用clear 、close all等語(yǔ)句開(kāi)始,清除原有的變量和圖形 注釋行以%號(hào)開(kāi)始,增加程序的可讀性 如果不想顯示結(jié)果,語(yǔ)句結(jié)尾用分號(hào),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,55,4.3 MATLAB的編程函數(shù)文件編程,函數(shù)文件 函數(shù)聲明 幫助文字 函數(shù)實(shí)現(xiàn) 注釋部分,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,56,4.3 MATLAB的編程函數(shù)文件編程,函數(shù)文件的使用方法 在腳本文件中進(jìn)行調(diào)用 直接在命令窗口進(jìn)行調(diào)用,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,57,4.3 MATLAB的編程函數(shù)文件編程,函數(shù)文件編程提示: 函數(shù)文件由function起頭,后面跟函數(shù)名; 函數(shù)名必須與文件名相同 輸出變量多于一個(gè)時(shí),要用方括號(hào), 舉例:x,y,z=function fun(a,b,c),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,58,4.4 MATLAB的編程流程控制語(yǔ)句,分支控制語(yǔ)句 if結(jié)構(gòu) switch結(jié)構(gòu) 循環(huán)控制語(yǔ)句 for循環(huán) while循環(huán) continue語(yǔ)句 break語(yǔ)句 程序終止語(yǔ)句:return語(yǔ)句,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,59,4.4.1 MATLAB的編程分支控制-if結(jié)構(gòu),if-else結(jié)構(gòu):,if logical_expression1 commands1 elseif logical_expression2 commands2 elseif else commands end,和C語(yǔ)言原理一致 注意語(yǔ)法格式的差異 elseif和else語(yǔ)句為可選語(yǔ)句,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,60,4.4.1 MATLAB的編程分支控制-switch結(jié)構(gòu),switch結(jié)構(gòu):,switch 表達(dá)式(標(biāo)量或字符串) case 值1 語(yǔ)句組A case 值2 語(yǔ)句組B . otherwise 語(yǔ)句組N end,otherwise語(yǔ)句為可選語(yǔ)句 和C語(yǔ)言的重要語(yǔ)法區(qū)別:每一個(gè)case語(yǔ)句后面不需要break語(yǔ)句跳出;,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,61,4.4.2 MATLAB的編程循環(huán)控制-for循環(huán),for循環(huán):一般用于已知循環(huán)次數(shù)的情況,for index=start:increment:end command end,index為循環(huán)變量,increment為增量,默認(rèn)值為1 index可以賦值為數(shù)組A,第n次循環(huán)時(shí),index被賦值為A(:,n),即A的第n列元素 MATLAB中循環(huán)效率很低,盡量充分使用數(shù)組結(jié)構(gòu),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,62,4.4.2 MATLAB的編程循環(huán)控制-while循環(huán),while循環(huán):一般用于已知循環(huán)結(jié)束條件情況,while expression commonds end,表達(dá)式expression為真,就執(zhí)行語(yǔ)句,直至結(jié)果為假,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,63,4.4.3 MATLAB的編程其他控制語(yǔ)句,continue語(yǔ)句 用在循環(huán)中,表示本次循環(huán)不再繼續(xù)向下執(zhí)行,進(jìn)入下一次循環(huán); break語(yǔ)句 退出循環(huán) return語(yǔ)句 終止程序運(yùn)行,用于需要立即退出的特殊情況等,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,64,4.5 MATLAB的編程交互命令,echo on/off: 在執(zhí)行M文件每行程序前先顯示其內(nèi)容 keyboard: 程序執(zhí)行到此暫停,在屏幕上顯示字符K,用戶可以在命令窗進(jìn)行任何操作,最后鍵入字符串return,恢復(fù)運(yùn)行原來(lái)的程序。 input (提示符) : 程序執(zhí)行到此暫停,屏幕顯示引號(hào)中的字符串,要求用戶輸入數(shù)據(jù)。數(shù)據(jù)輸入后,程序繼續(xù)運(yùn)行。舉例:N=input(N=); c (control-c) : 強(qiáng)行停止程序運(yùn)行的命令,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,65,4.6 MATLAB的編程舉例光線追跡,例:用MATLAB編程作圖分析不同顏色的平行光軸的光線通過(guò)平凸透鏡聚焦的光路情況。,中心厚度為3mm 凸面曲率半徑為100mm,波長(zhǎng) 折射率 480.0 - 1.523-藍(lán)色 550.0 - 1.519-綠色 632.8 - 1.515-紅色,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,66,4.6 MATLAB的編程舉例光線追跡,光學(xué)分析 以球心為坐標(biāo)原點(diǎn),1.光線經(jīng)過(guò)透鏡的第一個(gè)面后方向不變 2.光線經(jīng)過(guò)透鏡第二個(gè)面時(shí)發(fā)生折射:,假設(shè)平行入射光距離光軸的距離為h 入射角為: 折射定律: 光線在透鏡中經(jīng)過(guò)的距離為:,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,67,4.6 MATLAB的編程舉例光線追跡,編程思路 繪制平凸透鏡 繪制平面:確定X和Y數(shù)組用plot命令實(shí)現(xiàn) 繪制凸面:直接用fplot命令繪制 繪制多條平行光線通過(guò)透鏡前后的直線 透鏡曲面前的光線:plot 經(jīng)過(guò)透鏡曲面后的折射光線:plot,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,68,4.6 MATLAB的編程舉例光線追跡,光線追跡部分編程要考慮的內(nèi)容 入射光線的波長(zhǎng)可以改變 入射光線的視場(chǎng)范圍可以改變 要繪制的光線的數(shù)目可以調(diào)整 繪制的光線的顏色根據(jù)波長(zhǎng)不同可以進(jìn)行設(shè)置 光線追跡設(shè)置成函數(shù) raysPlot(DL,DH,ND,R,d,n,str) DL/DH:確定考察的光線的范圍; ND:光線數(shù)目設(shè)置 n:入射光線波長(zhǎng)所對(duì)應(yīng)的折射率 str:設(shè)置光線繪制的特性,類(lèi)似于plot中的參數(shù)設(shè)置,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,69,4.6 MATLAB的編程舉例光線追跡,程序模塊實(shí)現(xiàn) 編寫(xiě)繪制平凸透鏡的函數(shù),參數(shù)為R,d 編寫(xiě)光線經(jīng)過(guò)平凸透鏡前后光路繪制的函數(shù) 主程序中根據(jù)實(shí)際需要調(diào)用前面編寫(xiě)的兩個(gè)函數(shù),2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,70,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,71,4.6 MATLAB的編程舉例繪制透鏡,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,72,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,73,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,74,4.6 MATLAB的編程舉例-結(jié)果,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,75,4.7 MATLAB的編程提示,程序不是一遍就寫(xiě)好的,是多次不斷修改、優(yōu)化得到的; 代碼編寫(xiě)過(guò)程中要不斷進(jìn)行代碼調(diào)試和驗(yàn)證; 編程之前一定要理清代碼編寫(xiě)的大的思路;,第五章 MATLAB的符號(hào)運(yùn)算,2010-2011上,安徽工業(yè)大學(xué) 光信息科學(xué)與技術(shù) 莫緒濤,77,5.1 MATLAB的符號(hào)運(yùn)算介紹,符號(hào)數(shù)學(xué)工具箱:Symbolic Math Toolbox 符號(hào)數(shù)學(xué)工具箱對(duì)字符串進(jìn)行符號(hào)分析,不是基于數(shù)組的數(shù)值分析 符號(hào)數(shù)學(xué)工

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論