MATLAB程序设计概论.ppt

上传人:s****8 文档编号:67256337 上传时间:2022-12-24 格式:PPT 页数:45 大小:362KB
返回 下载 相关 举报
MATLAB程序设计概论.ppt_第1页
第1页 / 共45页
MATLAB程序设计概论.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《MATLAB程序设计概论.ppt》由会员分享,可在线阅读,更多相关《MATLAB程序设计概论.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、MATLAB程式設計概說謝志偉davidas.ntu.edu.tw台大大氣系 電腦室MATLAB 程式設計入門篇:初探MATLAB1-1 MATLAB 小傳n由MathWorks公司於1984年推出的數學軟體。n名稱是由矩陣實驗室MATrix LABoratory)所合成。nMATLAB為各種動態系統模擬、數位訊號處理、科學計算、科學目視等領域的標準程式語言。nMATLAB 的許多的核心計算技術是源自於 LINPACK 及 EISPACK。MATLAB 程式設計入門篇:初探MATLAB1-2 MATLAB 第七版的外觀nMATLAB 7.0(R14)發行於 2004 年6月,其啟動方法和第六版

2、相同,外觀如下:MATLAB 程式設計入門篇:初探MATLAB活頁夾型式的MATLAB桌面n點選Desktop/Desktop Layout/All Tabbed可將各個小視窗改為活頁夾的型式。(由左圖可以看出 共有六個小視窗)n若要回到預設的桌面配置,可點選Desktop/Desktop Layout/DefaultMATLAB 程式設計入門篇:初探MATLAB線上支援nhelp:用來查詢已知指令的用法。nlookfor:用來尋找未知的指令。找到所需的指令後,即可用 help 進一步找出其用法。nhelpwin:產生線上支援視窗,其效果和直接點選 MATLAB 命令視窗工作列的圖示是一樣。n

3、Tab鍵:未完成指令命令提示。MATLAB 程式設計入門篇:初探MATLAB工作空間與變數的儲存及載入nMATLAB 在進行各種運算時,會將變數儲存在記憶體內,這些儲存變數的記憶體空間稱為基本工作空間(Base Workspace)或簡稱工作空間(Workspace)n若要檢視現存於工作空間(Workspace)的變數,可鍵入 whon若要知道這些變數更詳細的資料,可使用 whos 指令MATLAB 程式設計入門篇:初探MATLAB檢視工作空間變數的其他方式n使用 clear all指令來清除或刪除工作空間內的所有變數,以避免記憶體的閒置與浪費 Ex:clearnclc則為清除command

4、window之前的執行指令n不加任何選項(Options)時,save 指令會將工作空間內的變數以二進制(Binary)的方式儲存至副檔名為 mat 的檔案nsave:將工作空間的所有變數儲存到名為 matlab.mat 的 二進制檔案。nsave filename:將工作空間所有變數儲存到名為 filename.mat 的二進制檔案。nsave filename x y z:將變數 x、y、z 儲存到名為 filename.mat 的二進制檔案。MATLAB 程式設計入門篇:初探MATLAB2-1使用變數與基本運算n一般數學符號運算n在MATLAB 命令視窗(Command Window)內

5、的提示符號()之後輸入運算式,並按入 Enter 鍵即可。例如:55-16 ans=39 nMATLAB 會將運算結果自動存入變數ans ans+11 ans=50n若不想讓 MATLAB 每次都顯示運算結果,只需在運算式最後加上分號(;)即可,例如:(5*2+3.5)/5;a=4,A=6;x=1;x=2+i*4MATLAB 程式設計入門篇:初探MATLAB變數命名規則與使用n第一個字母必需是英文字母。例如:x1,abcn變數名稱有分大小寫。例如:abc,Abc,x,X均不同 n字母間不可留空格。例如:math_scoren最多只能有 31 個字母,MATLAB 會忽略多餘字母。nMATLAB

6、 在使用變數時,不需預先經過變數宣告(Variable Declaration)的程序,而且所有數值變數均以預設的 double 資料型式儲存。MATLAB 程式設計入門篇:初探MATLAB2.2.1純量運算與加入註解n若要加入註解(Comments),可以使用百分比符號(%)例如:y1=(5*2+3.5)/5;%將運算結果儲存在變數 y,但不用顯示於螢幕 z=y12%將運算結果儲存在變數 z,並顯示於螢幕 z=7.2900 x=2+i*4x=2.0000+4.0000informat long%將顯示小數點後15位數format short%將顯示小數點後4位數MATLAB 程式設計入門篇:

7、初探MATLAB2.2.2向量與矩陣的處理nMATLAB 中的變數還可用來儲存向量(Vectors)及矩陣(Matrix),以進行各種運算,例如:a=1 2 3 4 5;%注意 的使用及各數字間的空白間隔 a=1 2 3 4 5 t=2*a+1t=3 5 7 9 11 b=2 4 6 8 10;%注意 的陣列轉置使用 MATLAB 程式設計入門篇:初探MATLAB建立大小為 mn的矩陣n在每一橫列結尾加上分號(;),例如:A=1 2 3;4 5 6;7 8 9;%建立 33 的矩陣 A A%顯示矩陣 A 的內容A=1 2 3 4 5 6 7 8 9 A=1 2 3 4 5 6 7 8 9MAT

8、LAB 程式設計入門篇:初探MATLAB矩陣的索引或下標MATLAB 程式設計入門篇:初探MATLAB冒號(:)The Colon Operatornt=1:5%產生一1 2 3 4 5數列向量nt=1:0.5:4%產生一1.0 1.5 2.0 2.5 3.0 3.5 4.0 增量數為0.5之數列向量 Ex:t=10:-1:5n可以使用矩陣下標來進行矩陣的索引(Indexing)nt(2:4)-取出向量t 中第二至四個的元素n用冒號(:),取出一整列或一整行 nA(2,:)-取出矩陣 A 的第二個橫列 n可以直接刪除矩陣的某一整個橫列或直行 nA(:,3)=刪除A矩陣的第三行MATLAB 程式

9、設計入門篇:初探MATLAB矩陣的各種處理nMATLAB 亦可取出向量中的一個元素或一部份來做運算,例如:t(3)=2%將向量 t 的第三個元素更改為 2 t=3 7 2 5 t(6)=10%在向量 t 加入第六個元素,其值為 10 t=3 7 2 5 0 10 t(4)=%將向量 t 的第四個元素刪除,代表空集合 t=3 7 2 0 10MATLAB 程式設計入門篇:初探MATLABmxn矩陣的各種處理之一n A(2,3)=5%將矩陣 A 第二列、第三行的元素值,改變為 5 A=1 2 3 4 5 6 5 8 9 10 11 12 n B=A(2,1:3)%取出矩陣 A 的第二橫列、第一至第

10、三直行,並儲存成矩陣 B B=5 6 5MATLAB 程式設計入門篇:初探MATLAB2.2.4 函式介紹n有一些函數是特別針對向量而設計n y=min(x)%向量 x 的極小值n y=max(x)%向量 x 的極大值n y=mean(x)%向量 x 的平均值n y=sum(x)%向量 x 的總和n y=sort(x)%向量 x 的排序n課本函式(第20,21頁)nlinspace(x1,x2,n)%linspace(0,1,6)nlogspace(x1,x2,n)%logspace(-1,2,4)nzero(m,n)%E=zeros(2,3)nones(m,n)%u=ones(1,3)MAT

11、LAB 程式設計入門篇:初探MATLAB2.3 數學運算子 n矩陣的加減與一般純量(Scalar)的加減類似 n相加或相減的矩陣必需具有相同的維度 n範例:demo01.m C=13 37 58 24 n矩陣與純量可以直接進行加減,MATLAB 會直接將加減應用到每一個元素 A=1 2 3 2 1+5 A=6 7 8 7 6 A=12 34 56 20;B=1 3 2 4;C=A+BMATLAB 程式設計入門篇:初探MATLAB2.3矩陣的乘法與除法n純量對矩陣的乘或除,可比照一般寫法 A=123,442;C=A/3 B=2*A C=B=41.0000 147.3333 246 884 n欲進

12、行矩陣相乘,必需確認第一個矩陣的直行數目(Column Dimension)必需等於第二個矩陣的橫列數目(Row Dimension)n範例demo02.m C=3 4 5 6 8 10 n矩陣的除法,常藉由反矩陣或解線性方程式來達成 A=1;2;B=3,4,5;C=A*BMATLAB 程式設計入門篇:初探MATLAB2.3矩陣的次方運算n矩陣的次方運算,可由來達成,但矩陣必需是方陣,其次方運算才有意義 n範例demo03.m B1=91 67 67 67 91 67 67 67 91 n在*,/及之前加上一個句點,MATLAB 將會執行矩陣內元素對元素(Element-by-element)

13、的運算 A1=magic(3);B1=A12A=12;45;B=2;3;C=A.*B%注意*前面的句點D=A./B%注意/前面的句點E=A.2%注意前面的句點MATLAB 程式設計入門篇:初探MATLAB2.4 常用數學函數nMATLAB 是一個科學計算軟體,因此可以支援很多常用到的數學函數n y=abs(x)%取 x 的絕對值n y=sin(x)%取 x 的正弦值n y=exp(x)%自然指數 exp(x)n y=log(A)%自然對數 ln(A)n Y=sqrtm(A)%求Y使得Y2=An y=length(t)%求t向量的維度MATLAB 程式設計入門篇:初探MATLAB2.5 基本的繪

14、圖指令nPlot:最基本的繪圖指令n對 x 座標及相對應的 y 座標進行作圖n範例:demo06.mx=linspace(0,2*pi);%在 0 到 2 間,等分取 100 個點 y=sin(x);%計算 x 的正弦函數值 plot(x,y);%進行二維平面描點作圖MATLAB 程式設計入門篇:初探MATLABPlot基本繪圖-1nlinspace(0,2*pi)產生從 0 到 2且長度為 100(預設值)的向量 x ny 是對應的 y 座標n只給定一個向量n該向量則對其索引值(Index)作圖nplot(y)和plot(1:length(y),y)會得到相同的結果 MATLAB 程式設計入

15、門篇:初探MATLABPlot基本繪圖-2(I)n一次畫出多條曲線 n將 x 及 y 座標依次送入plot 指令n範例:demo06.mx=linspace(0,2*pi);%在 0 到 2 間,等分取 100 個點plot(x,sin(x),x,cos(x),x,sin(x)+cos(x);%進行多條曲線描點作圖MATLAB 程式設計入門篇:初探MATLABPlot基本繪圖-2(II)Plot(x,sin(x),x,cos(x),x,sin(x)+cos(x);畫出多條曲線時,會自動輪換曲線顏色 MATLAB 程式設計入門篇:初探MATLABPlot基本繪圖-3(I)n若要以不同的線標(Ma

16、rker)來作圖n範例:demo06.mx=linspace(0,2*pi);%在 0 到 2 間,等分取 100 個點 plot(x,sin(x),o,x,cos(x),x,x,sin(x)+cos(x),*);MATLAB 程式設計入門篇:初探MATLABPlot基本繪圖-3(II)MATLAB 程式設計入門篇:初探MATLAB2.5圖形的控制nplot 指令,可以接受一個控制字串輸入n用以控制曲線的顏色、格式及線標n使用語法plot(x,y,CLM)nC:曲線的顏色(Colors)nL:曲線的格式(Line Styles)nM:曲線所用的線標(Markers)MATLAB 程式設計入門篇

17、:初探MATLAB圖形控制範例-1(I)n用藍色點線畫出正弦波n每一資料點畫上一個小菱形n範例:demo06.mx=0:0.5:4*pi;%x 向量的起始與結束元素為 0 及4pi,%0.5為各元素相差值y=sin(x);plot(x,y,b:diamond)%其中b代表藍色,:代表點%線,而diamond 則指定菱形為曲%線的線標MATLAB 程式設計入門篇:初探MATLAB圖形控制範例-1(II)MATLAB 程式設計入門篇:初探MATLABplot 指令的曲線顏色 Plot指令的曲線顏色字串曲線顏色RGB值b藍色(Blue)(0,0,1)c青藍色(Cyan)(0,1,1)g綠色(Gree

18、n)(0,1,0)k黑色(Black)(0,0,0)m紫黑色(Magenta)(1,0,1)r紅色(Red)(1,0,0)w白色(1,1,1)y黃色(Yellow)(1,1,0)MATLAB 程式設計入門篇:初探MATLABplot 指令的曲線格式 plot 指令的曲線格式字串 曲線格式-實線(預設值)-虛線:點線-.點虛線 MATLAB 程式設計入門篇:初探MATLABplot 指令的曲線線標(I)plot 指令的曲線線標字串 曲線符號符號 O圓形+加號X叉號*星號.點號朝上三角形V朝下三角形MATLAB 程式設計入門篇:初探MATLABplot 指令的曲線線標(II)plot 指令的曲線線

19、標字串 曲線符號符號 朝右三角形 pwd%顯示目前的工作目錄 cd d:mywork type myTest.m%顯示 myTest.m 的內容 myTest%執行 myTest.m MATLAB 程式設計入門篇:初探MATLAB3.1.2函數n若要一次執行大量的 MATLAB 指令,可將這些指令存放於一個副檔名為 m 的檔案,並在 MATLAB 指令提示號下鍵入此檔案的主檔名即可。pwd%顯示目前的工作目錄 cd d:mywork type myTest.m%顯示 myTest.m 的內容 myTest%執行 myTest.m MATLAB 程式設計入門篇:初探MATLAB3.1.2 函數n

20、函數n也是 M 檔案的一種n可接受輸入變數,並將結果送至輸出變數n運算過程產生的變數都存放在函數本身的工作空間n不會和 MATLAB 基本工作空間的變數相互覆蓋n函數適用於大型程式碼n使程式碼模組化(Modularized)並易於維護與改進MATLAB 程式設計入門篇:初探MATLAB函數顯示及內容nfunction outvar=funcname(arglist)%helpcommentsStatementsoutvar=valuen第一列為函數定義列(Function Definition Line)n定義函數名稱(funcname,最好和檔案的檔名相同)n輸入引數(arglist)n輸出

21、引數(outvar)nfunction為關鍵字n第二列為help註解說明,可以用help funcname顯示註解說明MATLAB 程式設計入門篇:初探MATLAB3.3.1 條件指令nMATLAB 支援條件指令(Branching Command,或中譯成分支指令)是 if-then-else 條件指令。n最常用的條件指令是 if-then-else,其使用語法為:if條件式運算式一;else運算式二;endn當條件式成立時,MATLAB 將執行運算式一,否則,就執行運算式二。若不需使用運算式二,則可直接省略 else 和運算式二。MATLAB 程式設計入門篇:初探MATLAB3.3.2迴圈

22、(Loops)控制nMATLAB 提供重複迴圈(Loops)及條件判斷(Conditions)等程式流程控制(Flow Control)的指令nfor 迴圈 For 變數=向量 運算式;endMATLAB 程式設計入門篇:初探MATLAB流程控制nwhile 迴圈(While-loop)while條件式 運算式;endnif condition,break,end n while(1)運算式;if 條件式 break end end MATLAB 程式設計入門篇:初探MATLAB程式流程控制之範例一n下列 for 迴圈會產生一個長度為 6 的調和數列(Harmonic Sequence):n範

23、例:demo07.mx=zeros(1,6);%變數 x 是一個 16 大小的零矩陣 for i=1:6x(i)=1/i;endx%顯示 xx=1.0000 0.5000 0.3333 0.2500 0.2000 0.1667n在上例中,矩陣 x 最初是一個 16 大小的零矩陣,在 for 迴圈中,變數 i 的值依次是 1 到 6,因此矩陣 x 的第 i 個元素的值依次被設為 1/i。n我們接著可用分數形式來顯示此數列:format rat%使用分數形式來顯式數值使用分數形式來顯式數值 disp(x)1 1/2 1/3 1/4 1/5 1/6MATLAB 程式設計入門篇:初探MATLAB程式流

24、程控制之範例二n下列 for 迴圈會產生一個長度為 6 的調和數列(Harmonic Sequence):n課本Example3.5:Using a for Loop to Compute the Factorial0!=11!=12!=1*2=2.n!function fout=factor(n)%x=1;for i=1:nx=x*i;end fout=x;end MATLAB 程式設計入門篇:初探MATLAB程式流程控制之範例三n先前產生調和數列的例子,亦可用 while 迴圈改寫如下:n範例:while01.mx=zeros(1,6);i=1;while i=6x(i)=1/i;i=i+1;endx%顯示 xx=1.0000 0.5000 0.3333 0.2500 0.2000 0.1667

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com