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

Slides:



Advertisements
Similar presentations
实验安排 本周六和下周六上机时间: 上午: 8 : 30~10 : 00 第一组 上午: 11 : 00~11 : 30 第二组 下午: 14 : 30~16 : 00 第三组.
Advertisements

發現生命的力量 — 陳樹菊阿嬤,來了 … 《不凡的慷慨》書籍賞析. 你所知道的陳樹菊  2010 《富比世》雜誌亞洲慈善英雄! 2010 美國《時代》雜誌最具影響力百大人物! 《讀者文摘》亞洲英雄!  導演李安﹕「她的生活稱不上富裕,仍然陸續捐贈 了將近一千萬台幣幫助數個不同的單位 … 」
國立成功大學工程科學系 Department of Engineering Science -National Cheng Kung University 控制與訊號處理實驗室 Control & Signal Processing Lab MATLAB/Simulink 教學.
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
《北國性騷擾》 電影欣賞 帶領者 李佩娟 諮商心理師 元培科大學輔中心輔導員(現任) 高雄師範大學輔導與諮商研究所(學經歷)
中一至中五數學科 修訂課程實施研討會 課程內容 2001年4月9日 鄧美愉女士 教育署數學組.
高职人才培养评估核查 与状态数据采集平台建设工作 说 明 广东水利电力职业技术学院 曾志军
統 計 程 式 語 言.
营 改 增 政 策 交 流 烟台市国家税务局.
第4章 线性代数 4.1 矩阵的生成 通过元素列表榆入 通过外部数据加载 在M文件中创建矩阵
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
劳动社会保障法学 吴 斌 四川理工学院 法学教授.
MATLAB小结、 经典迭代法、CG.
Introduction to Matlab
1-1 MATLAB 小傳(1) 由MathWorks公司於1984年推出的 數學軟體。 名稱是由「矩陣實驗室﹙MATrix
1012 MATLAB 教學 彭奕翔 2013/02/27.
性別透視鏡 鳳鳴電台 高宜君老師.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第2章 Fortran程序设计基础.
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
MATLAB介紹.
張智星 清大資工系 補充內容:方煒 台大生機系 小幅修改:吳俊仲 長庚機械系
張智星 清大資工系 補充內容:方煒 台大生機系
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
Matlab M檔案 方煒 台大生機系.
第2章 MATLAB矩阵及其运算 2. 1 变量和数据操作 2. 2 MATLAB矩阵 2. 3 MATLAB运算 2. 4 矩阵分析 2
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Z Mathematical Model ‡ ' MATLAB简介.
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
University of Electronic Science and Technology, China
張智星 清大資工系 多媒體檢索實驗室 第九章: 矩陣的處理與運算 張智星 清大資工系 多媒體檢索實驗室.
Matlab基础介绍 Matlab 简介 Matlab 的安装与启动 Matlab 编程基础 Matlab 在数字信号处理课程中的应用.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
引 言.
1 試求下列各值: cos 137°cos (-583°) + sin 137°sin (-583°)。
Introduction to MATLAB
第九章: 矩陣的處理與運算 張智星 (Roger Jang)
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
第1章 MATLAB操作基础 1.1 绪论 1.2 MATLAB概述 1.3 MATLAB的运行环境与安装 1.4 MATLAB集成环境 1.5 MATLAB帮助系统.
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
網路遊戲版 幸福農場168號.
1.3 矩阵与数组 MATLAB中矩阵的生成 MATLAB矩阵操作 数组创建与运算.
第2章 MATLAB程序设计 编者.
数学建模 江西财经大学 数学与管理决策系 制作:华长生 华长生制作.
1 在平面上畫出角度分別是-45°,210°,675°的角。 (1) (2) (3)
MATLAB 入门教程.
数学实验与MATLAB简介  课程的背景和基本要求 MATLAB 使用简介 MATLAB 常用函数介绍 宝石切割问题实验.
MATLAB 程式設計入門篇 初探MATLAB
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
本章學習目標 認識陣列裡元素的結構 學習多維陣列的建立 學習編修矩陣的內容 學習基本的矩陣數學運算
实验教学 MATLAB在行列式和矩阵中的应用 授课教师:杨梦云.
MATLAB 程式設計入門篇 初探MATLAB
第三模块 函数的微分学 第一节 导数的概念 一、瞬时速度 曲线的切线斜率 二、导数的定义 三、导数的几何意义 四、导数的物理意义 五、导函数
第一单元 第1课 Matlab概述 1.MATLAB 2.工具箱 3.高效数值计算功能 4.完备的计算结果和编程可视化功能
西南科技大学网络教育系列课程 数学软件 数学软件 第3讲 MATLAB数组与运算 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
统计软件应用 2 主讲人 陶育纯 SPSS 统计软件应用 2 主讲人 陶育纯 教案.
Introduction to Matlab
第1章 MATLAB操作基础 1. 1 MATLAB概述 1. 2 MATLAB的运行环境与安装 1. 3 MATLAB集成环境 1
MATLAB 程式設計 程式除錯 方煒 台大生機系.
第7章 MATLAB工程计算.
MATLAB 实用教程.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
原版:清大資工系 張智星 新增版:方煒 台大生機系
第八章 异步电动机.
第二模块 函数、极限、连续 第七节 无穷小量的比较
Presentation transcript:

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

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

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

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

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

Getting Help Menu Help > Product Help to open the Help Browser Ctrl+F1 for the Function Hint F1 to get the Help on Selection Shift+F1 for the Function Browser

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

算術邏輯運算 算術運算 符號 運算 Matlab形式 ^ 幂次運算:a b a^b * 乘法:a × b a * b / 右除法:a ÷ b \ 左除法:b ÷ a a \ b + 加法:a + b a + b - 減法:a - b a - b

算術邏輯運算 優先順序 優先權 運算 第一 括號,從內部開始運算。 第二 幂次運算,由左到右。 第三 乘法與除法,兩者優先全相同,由左到右。 第四 加法與減法,兩者優先全相同,由左到右。 為了要避免錯誤,可以在適當的地方加入括號以確保在運算中所要求的優先權。

隨堂演練 使用Matlab進行下列算式的運算。 a.6*(10/13)+(18/(5*7))+(5*(9^2))=410.1297

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

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

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

Working with Workspace

Matlab所提供之資料型態 Matlab所提供之資料型態 陣列 數值形態 int8, uint8 int16, uint16 一般數值 Double Single n-bit數值 int8, uint8 int16, uint16 int32, uint32 int64, uint64 字元 Char 邏輯 Logical 多值 Cell 結構 Structure Function handle

運算子 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是不被允許的。

工作區的對話指令 指令 說明 clc 清除命令視窗。 clear 清除工作區內所有的變數。 clear var 清除工作區內的變數var。 exist(‘name’) 決定是否有任一個檔案或者變數以name存在。 who 查詢於目前的工作區內,有哪些變數在使用。 whos 同who,但會列出每一個變數詳細的資料。 whos var 查詢變數var的詳細資訊。 : 冒號:產生固定間隔的陣列。 , 逗號:分開矩陣中的元素。 ; 分號:制止螢幕得顯示;同時也用於顯示新的一列。 … 省略符號:接續成同一行。

Matlab定義了一些常數,以方便輸入特定的數值,這些常數稱為永久常數(permanent constant)。 變數的設定與命名規則 Matlab定義了一些常數,以方便輸入特定的數值,這些常數稱為永久常數(permanent constant)。 永久常數 說明 ans 儲存最近一次答案的暫存變數。 pi 圓周率,π=3.14159265358979。 Inf或INF 無限大(∞)。 i, j 虛數(imaginary numbers)。 NAN或nan 不存在的數。 realmax 系統所能表示得最大的數。 realmin 系統所能表示得最小的數。

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

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

一些常用的數學函數 常用的數學函數 函數 Matlab語法 ex exp(x) ln(x) log(x) log10x log10(x) cos x cos(x) sin x sin(x) tan x tan(x)

輔助函數 Matlab之輔助函數 指令 說明 lookfor topic help 顯示所有函數的目錄清單,以及各函數類別所代表之意義。 help function 在命令視窗中顯示特定函數function之敘述。 doc 於輔助瀏覽器中顯示說明文件之起始頁。 doc function  顯示Matlab函數function的文件。 想要找到一個求平均值的函數 使用方法的查詢 更詳盡的使用方法 lookfor mean → help mean doc mean

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

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

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

>> Vector2 = uint8(1:4) >> Vector3 = [1:0.5:4] 向量相關指令函數 建立向量之指令函數 >> Vector1 = 1:4 >> Vector2 = uint8(1:4) >> Vector3 = [1:0.5:4] >> Vector4 = linspace(1,5,10) 指令與函數 說明 a : b 從a到b,間隔為1,建立一列向量。 a : step : b 從a到b,間隔為step,建立一列向量。 linspace(a, b) 從a到b,建立具有100個元素的列向量。 linspace(a, b, n) 從a到b,建立具有n個元素的列向量。

>> size(Vector3) >> length(Vector3) 向量相關指令函數 查詢陣列相關資訊函數 >> size(Vector3) >> length(Vector3) >> ndims(Vector3) >> numel(Vector3) 函數 說明 size(m) 查詢矩陣m之維度(dimensions) 。 length(m) 查詢矩陣m的行數。 ndims(m) 查詢矩陣m的維數。(number of dimensions) numel(m) 查詢矩陣m的元數個數。(number of elements)

向量相關指令函數 基本向量處理函數 函數 說明 sum(v) 計算向量v之總和。 prod(v) 計算向量v之乘積。 max(v) min(v) 計算向量v之最小值。 sort(v) 將向量v裡的元素由小到大排列。 sort(v, ’descend’) 將向量v裡的元素由大到小排列。 cumsum(v) 計算向量v的累加(cumulative sum)。 cumprod(v) 計算向量v的累乘(cumulative product)。

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

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

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

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

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 矩陣的第二、三直行)

Matlab矩陣 產生各種特殊用途矩陣之指令 : 指令 說明 zeros(m,n) 產生維度為m×n,構成元素全為0的矩陣 。 ones(m,n) 產生維度為m×n,構成元素全為1的矩陣。 eye(n) 產生維度為n×n,對角線的各元素全為1,其他各元素全為0的單位矩陣。 pascal(m,n) 產生維度為m×n的Pascal矩陣。 vander(m,n) 產生維度為m×n的Vandermonde矩陣。 hilb(n) 產生維度為n×n的Hilbert 矩陣。 rand(m,n) 產生[0, 1] 均勻分佈的亂數矩陣,其維度為 m×n。 randn(m,n) 產生µ =0,σ=1的正規分佈亂數矩陣,其維度為 m×n。 magic(n) 產生維度為n×n的魔方陣,其各個直行、橫列及兩對角線的元素和都相等。

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

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

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

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

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

Matlab矩陣運算 矩陣的數學運算 矩陣運算 說明 A+B 矩陣A加上矩陣B A-B 矩陣A減去矩陣B A*B 矩陣A乘上矩陣B A^n 矩陣A的n次方,即矩陣A連乘n次,其中A必須為方陣。 A’ 矩陣A的共軛轉置。 A\B A左除B,相當於把A的反矩陣乘以B,即A-1B。 inv(A) 計算矩陣A的反函數(inverse)。 det(A) 計算矩陣A的行列式值(determinate)。

Matlab矩陣運算 陣列的點運算 指令 說明 A.*B 將矩陣A內的元素乘上矩陣B內相同位置得元素。 A.^n 計算矩陣A的轉置(transpose)。 A./B 將矩陣A裡面的每一個元素除以B裡面每一個相對應的元素。 A.\B 將矩陣B裡面的每一個元素除以A裡面每一個相對應的元素。

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,

二維陣列 二維陣列又簡稱矩陣,具有兩個維度 「橫列」(Row) 「直行」(Column) (1,1) (1,2) (1,3) (1,4) 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)

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

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