1 / 45

Matlab 教學

Matlab 教學. Speaker : 林昱志 Date : 2012/10/18. Outline. MATLAB 簡介 算術邏輯運算 Matlab 陣列 Matlab 矩陣. MATLAB 簡介. 由 MathWorks 公司於 1984 年推出的數學軟體。 名稱是由「矩陣實驗室」 (MATrix LABoratory) 所合成。 Matlab 為各種動態系統模擬、數位訊號處理、科學計算、科學目視等領域的標準程式語言。 Matlab 是一個計算核心,圍繞著這個計算核心,有許多針對不同應用所開發的應用程式,稱為工具箱 (Toolboxes) 。.

holt
Download Presentation

Matlab 教學

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab教學 Speaker:林昱志 Date:2012/10/18

  2. Outline • MATLAB簡介 • 算術邏輯運算 • Matlab陣列 • Matlab矩陣

  3. MATLAB簡介 • 由MathWorks公司於1984年推出的數學軟體。 • 名稱是由「矩陣實驗室」(MATrix LABoratory)所合成。 • Matlab為各種動態系統模擬、數位訊號處理、科學計算、科學目視等領域的標準程式語言。 • Matlab是一個計算核心,圍繞著這個計算核心,有許多針對不同應用所開發的應用程式,稱為工具箱(Toolboxes)。

  4. MATLAB外觀 現階段的目錄(Current Folder) 工作空間變數列表 (Workspace Window) 指令視窗 (Command Window) 指令歷史列表 (Command History) 詳細資訊 (Details)

  5. MATLAB外觀 現在工作目錄 (Current Directory) 新的M檔案 (New M-file) Command Window: 開啟或關閉「指令視窗」 Command History: 開啟或關閉「指令歷史列」 Current Folder : 開啟或關閉「MATLAB 瀏覽器」 Workspace Browser: 開啟或關閉「工作空間瀏覽器」 Product Help : 開啟或關閉「線上支援瀏覽器」 Function Brower: 開啟或關閉「函數瀏覽器」

  6. Getting Help • Menu Help > Product Help to openthe Help Browser • Ctrl+F1 for the Function Hint • F1 to get the Help on Selection • Shift+F1 for the Function Browser

  7. 算術邏輯運算 • 一般數學符號運算 • 在Matlab命令視窗(Command Window)內的提示符號(>>)之後輸入運算式,並按入 Enter 鍵即可。例如: • >> (5*2+3.5)/5 • ans =2.7000 • 若不想讓Matlab每次都顯示運算結果,只需在運算式最後加上分號(;)即可,例如: • >> (5*2+3.5)/5;

  8. 算術邏輯運算 • 算術運算

  9. 算術邏輯運算 • 優先順序

  10. 隨堂演練 • 使用Matlab進行下列算式的運算。

  11. 變數設定與命名規則 • 把計算的結果設定給一個變數(variable),以方便後續之使用。(ex: var1 = 12/64 ;) • 第一個字母必需是英文字母,字母間不可留空格。 • 最多只能有31個字母,Matlab會忽略多餘字母。  • Matlab在使用變數時,不需預先經過變數宣告(VariableDeclaration)的程序,而且所有數值變數均以預設的double資料型式儲存。

  12. Example • >> a = 1; • >> b = 2; • >> A = [a b; 3 4] • >> class(A) • >> size(A)

  13. Workspace Window • Workspace Window之變數 變數名稱 陣列大小 變數類型

  14. Working with Workspace

  15. Matlab所提供之資料型態 • Matlab所提供之資料型態

  16. 運算子 • Matlab中「=」運算子和數學中等號的意義是不同的。 • 符號「=」在Matlab中叫做指派(assignment)或者取代(replacement)。 • 當鍵入x=3時,即是告訴Matlab將3指派給變數x。 • 當鍵入x=x+2時,這告訴Matlab在目前的x的值再加上2以取代目前x的值,此時新的x值為5。 • 在左手邊(left-hand)的變數將會被右手邊(right-hand)所產生的新值取代掉。 • 依照以上的限制式,6=x或x+18=20是不被允許的。

  17. 工作區的對話指令

  18. 變數的設定與命名規則 • Matlab定義了一些常數,以方便輸入特定的數值,這些常數稱為永久常數(permanent constant)。

  19. 隨堂演練 • 高度h及半徑r的圓柱體體積為V=πr2h。 • 一個特殊的圓柱型水槽高度為15m且半徑為8m,現在我們要建造另一個容量多20%,但高度維持一樣的水槽,請問半徑要多少? r = ? m r = 8 m V : 20% up h = 15 m h = 15 m

  20. 隨堂演練 • 高度h及半徑r的圓柱體體積為V=πr2h。 • 一個特殊的圓柱型水槽高度為15m且半徑為8m,現在我們要建造另一個容量多20%,但高度維持一樣的水槽,請問半徑要多少? r = ? m r = 8 m V : 20% up h = 15 m h = 15 m r = 8 ; 指派半徑及高度給r及h h = 15 ; 優先權注意,同:V=pi*(r^2)*h; V=pi*r^2*h; 舊的體積V被新的體積V取代 V=V +0.2*V; r = (V/(pi*h))^0.5

  21. 一些常用的數學函數 • 常用的數學函數

  22. 輔助函數 • Matlab之輔助函數 lookfor mean → help mean doc mean → 想要找到一個求平均值的函數 使用方法的查詢 更詳盡的使用方法

  23. Matlab陣列 • 要熟悉Matlab的語法,首先必須先學習如何操作陣列裡的元素。 • 定義 • 純量:單一數值。 • Scalar=4; • 向量:一維之陣列,包含行向列以及列向量。 • Cvector= [4;5;6] ; • Rvector = [7,8,9] ; • 矩陣:二維之陣列,陣列中最常使用到之形式。 • Matrix = [5 6 ; 7 8] ; • 多維陣列:對於維度(Dimensions)超過1的陣列稱之。 • 陣列包含上敘之純量、向量以及矩陣。

  24. Vector Vector(i) 4 1 5 2 6 3 Rvector Rvector(i) 7 8 9 1 2 3 Example • >> Rector1 = [7,8,9] • >> Rector2 = [7 8 9] • >> Rector1(1) • >> Rector2(2) • >> Vector1 = [4;5;6] • >> Vector1(3)

  25. Rector1 Vector2 Rector3 Vector1 7 4 8 4 5 6 7 8 9 5 9 6 共軛轉置與轉置 • 共軛轉置:『’』 • >> Rector3 = Rector1’ • 轉置:『.’』 • >> Vector2 = Rector1.’

  26. 向量相關指令函數 • 建立向量之指令函數 • >> Vector1 = 1:4 • >> Vector2 = uint8(1:4) • >> Vector3 = [1:0.5:4] • >> Vector4 = linspace(1,5,10)

  27. 向量相關指令函數 • 查詢陣列相關資訊函數 • >> size(Vector3) • >> length(Vector3) • >> ndims(Vector3) • >> numel(Vector3)

  28. 向量相關指令函數 • 基本向量處理函數

  29. 隨堂演練 • 建立一列向量X,其元素由0到10,間距為0.5,並將向量裡的元素由大到小排列、計算其總和(sum)、維度(size)以及元素個數(numel)。

  30. 隨堂演練 • 建立一列向量X,其元素由0到10,間距為0.5,並將向量裡的元素由大到小排列、計算其總和(sum)、維度(size)以及元素個數(numel)。 • >>x = 0:0.5:10 ; • >>sum(x) ; • >>size(x) ; • >>numel(x) ; • >>sort(x,’descend’);

  31. Matrix Matrix(i) 5 6 1 3 7 8 2 4 Matrix(i,j) Matrix j 5 6 (1,1) (1,2) i 7 8 (2,1) (2,2) Matlab矩陣 • Matrix1 = [5 6 ; 7 8] • Matrix1(3) • 按照列以及行之順序。 • A(i,j)=A(列之順序,行之順序) • Matrix1(2,1)

  32. Matlab矩陣 • A= [1:1:4; 5:2:11; 12:3:21] • 冒號(:) • 代表一整列或一整行 • A(:,3) (取出矩陣 A 的第三個直行) • end • 這個保留字來代表某一維度的最大值 • A(end,end) (矩陣 A 的右下角元素) • A(:,end) (矩陣 A 的最後一個直行)

  33. Matlab矩陣 • A= [1:1:4; 5:2:11; 12:3:21] • 可以直接刪除矩陣的某一整個橫列或直行 • A(2,:) = [] (刪除A矩陣的第二列) • A(:,[2 3]) = [] (刪除 A 矩陣的第二、三直行) • 可以取代矩陣的某一整個橫列或直行 • A(2,:) = [0] (取代A矩陣的第二列) • A(:,[2 3]) = [1] (取代A 矩陣的第二、三直行)

  34. Matlab矩陣 • 產生各種特殊用途矩陣之指令 :

  35. 隨堂演練 • 產生維度為3×3的魔方陣,計算其做最大值(max),以及最小值(min)。

  36. 隨堂演練 • 產生維度為3×3的魔方陣,計算其做最大值(max),以及最小值(min)。 • Matlab函數運算時,會對行向量先進行運算。 max max 8 9 7 9 8 1 6 Matrix = magic(3) 3 5 7 4 9 2 min min 3 1 2 1

  37. Matlab矩陣運算 • 函數max以及min當有兩個接收變數時可以知道最大元素所在之index,用法如下: • [ max_val , max_index ] = max(x) • [ min_val , min_index ] = min(x)

  38. Example • 利用函式max或是min找出magic(3)中最大元素之二維索引。 • [max_val1, index] = max( Matrix ) ; Matrix = magic( 3 ) ; 8 1 6 3 5 7 4 9 2 max index max_val1 8 9 7 1 3 2

  39. Example • 利用函式max或是min找出magic(3)中最大元素之二維索引。 • [max_val , c_index] = max( max_val1 ) ; • r_index= index( c_index ) ; • Max = Matrix( r_index , c_index) index max_val1 8 9 7 1 3 2 max index(c_index) max_val c_index r_index 9 2 3

  40. Matlab矩陣運算 • 矩陣的數學運算

  41. Matlab矩陣運算 • 陣列的點運算

  42. Example • >>A = 1:3, B = 4:6 • >> A + B, A - B, A + 1, B - 2 • >> A' * B, A * B', A * 2, A * B • >> A .* B, A' .* B', A .* 2, A' .* B • >> A ./ B, A' ./ B', A ./ 2, A / 2 • >> A .^ B, (A') .^ (B'), A .^ 2, 2 .^ B • >>A = 5, B = [1:3; 4:6; 7:9] • >> B <= A, B > 5,

  43. 二維陣列 • 二維陣列又簡稱矩陣,具有兩個維度 • 「橫列」(Row) • 「直行」(Column) j (Column) (1,1) (1,2) (1,3) (1,4) i (Row) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (4,1) (4,2) (4,3) (4,4)

  44. 三維陣列 • 將兩個二維陣列疊在一起,就形成第三個維度,此第三個維度稱為「頁」(Page)。 (1,1,n) (1,2,n) (1,3,n) (1,4,n) k (page) (2,1,n) (2,2,n) (2,3,n) (2,4,n) (3,1,n) (3,2,n) (3,3,n) (3,4,n) j (Column) (4,1,n) (4,2,n) (4,3,n) (4,4,n) i (Row) (1,1,2) (1,2,2) (1,3,2) (1,4,2) (2,1,2) (2,2,2) (2,3,2) (2,4,2) (1,1,1) (1,2,1) (1,3,1) (1,4,1) (3,1,2) (3,2,2) (3,3,2) (3,4,2) (2,1,1) (2,2,1) (2,3,1) (2,4,1) (4,1,2) (4,2,2) (4,3,2) (4,4,2) (3,1,1) (3,2,1) (3,3,1) (3,4,1) (4,1,1) (4,2,1) (4,3,1) (4,4,1)

  45. 四維陣列 • 四維陣列的第四個維度可視為「箱」(Box),而每個箱是由一個三維陣列所組成,其定址方式為(列,行,頁,箱)。 • 一個 2×2×3×4 的四維陣列,可表示成4個箱,每個箱都由一個 2×2×3 的三維陣列所組成,圖示如下: A(:,:,:,1) A(:,:,:,2) A(:,:,:,3) A(:,:,:,4)

More Related