MATLAB 程式設計入門篇 初探MATLAB

Slides:



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

完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
讀經教育  第一組:吳碧霞、陳鍾仁  第二組:吳雪華、謝濰萁  第三組:邱國峰、林佳玫. 不論上智下愚 成功的教育 讓每個孩子 都能成為最優秀的人才.
护理部教学管理 南医大二附院 张淑芬. 护理部主要工作:  培训  质量  教学科研 临床教学的秘诀 What – 需要的、喜欢的 Who – 教师的角色 – 学生的程度、学习方式 How – 教学方法.
提升教學品質研討會 工學院教師教學經驗分享 長庚大學 資訊工程學系 / 醫療機電工程研究所 助理教授 趙一平 2015/04/10.
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
第 5 章 中國的都市.
存量房交易纳税评估 系统简介 常州市武进地方税务局 政策法规科 2011 年 7 月.
第六讲 MATLAB 语言程序设计 6.1 MATLAB语言的函数的基本结构 6.2 全局、局部变量、子函数与私有目录
《北國性騷擾》 電影欣賞 帶領者 李佩娟 諮商心理師 元培科大學輔中心輔導員(現任) 高雄師範大學輔導與諮商研究所(學經歷)
大家好!.
十二年國民基本教育 高雄區入學方式說明 報告人:中山工商 楊薇主任.
樂 樂 西 玩 西 玩 門 門.
TQC+ 物件導向程式認證-JAVA.
古文閱讀 – 像虎伏獸 明 劉基 組員: 5號江依倫 6號江若薇 12號張珉芫 32號蔡燕如.
Introduction to Matlab
迎宾员礼仪 包头机电工业职业学校管理系 白琳 1.
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
2010年桂林理工大学数学建模竞赛暑期培训班 MATLAB编程入门培训课程
项目六 职业生涯规划的方法与步骤.
聲音檔和 Video 檔的讀與寫 (by Matlab)
第七讲 matlab的程序设计 —— matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
Matlab及其应用 鲍文 哈尔滨工业大学 先进动力控制与可靠性研究所
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
Chap.1 簡介與入門使用 方煒 台大生機系 彙整.
第一章 概 述 1.1 MATLAB产品族简介 1.2 MATLAB的桌面环境 1.3 Command Windows和MATLAB指令
MATLAB介紹.
張智星 清大資工系 補充內容:方煒 台大生機系 小幅修改:吳俊仲 長庚機械系
張智星 清大資工系 補充內容:方煒 台大生機系
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
Transact-SQL 語言設計教學.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
Matlab M檔案 方煒 台大生機系.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
第1章 MATLAB概述 编者.
Application of Matlab Language
張智星 清大資工系 多媒體檢索實驗室 第九章: 矩陣的處理與運算 張智星 清大資工系 多媒體檢索實驗室.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
SPSS-概述與資料處理 輔大統計資訊系 黃孝雲.
Ch4.SQL Server 2005資料庫組成員元件介紹
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
引 言.
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国家重点实验室.
105-1 Data Structure Exam /12/27.
数学实验与MATLAB简介  课程的背景和基本要求 MATLAB 使用简介 MATLAB 常用函数介绍 宝石切割问题实验.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
學這些有什麼好處呢? 為了把資料作更客觀之總結描述或比較多組資料。總而言之,就是要找出一個數能代表整組數據。
陳維魁 博士 儒林圖書公司 第三章 變數與繫結 陳維魁 博士 儒林圖書公司.
MATLAB 程式設計入門篇 初探MATLAB
107學年度高雄區 實用技能學程輔導分發 五福國中說明會
Create and Use the Authorization Objects in ABAP
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
统计软件应用 2 主讲人 陶育纯 SPSS 统计软件应用 2 主讲人 陶育纯 教案.
Introduction to Matlab
第1章 MATLAB操作基础 1. 1 MATLAB概述 1. 2 MATLAB的运行环境与安装 1. 3 MATLAB集成环境 1
MATLAB 程式設計 程式除錯 方煒 台大生機系.
MATLAB 实用教程.
基础信贷法律知识 讲解人:岳杨.
第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
MATLAB 程式設計入門篇 程式除錯 張智星 (Roger Jang)
Presentation transcript:

MATLAB 程式設計入門篇 初探MATLAB 張智星 (Roger Jang) jang@mirlab.org http://mirlab.org/jang 台大資工系 多媒體檢索實驗室

有趣的指令 安裝MATLAB後,你會想做的事(請直接在命令視窗內的提示符號 “>>” 之後輸入下列指令): 檢查版本 (check version) version ver 測試電腦速度 (test computer speed) bench Quiz!

2-1 使用變數與基本運算 一般數學符號運算 在MATLAB 命令視窗內的提示符號(>>)之後輸入運算式,並按入 Enter 鍵即可: >> (5*2+3.5)/5 ans = 2.7000 其中ans是內建的變數,用於儲存每次的運算結果。 我們也可以將運算結果送到另一個變數: >> x =(5*2+3.5)/5 x = 2.7000 若不想讓 MATLAB 每次都顯示運算結果,只需在運算式最後加上分號即可: >> y=(5*2+3.5)/5;

變數命名規則與使用 第一個字元必需是英文,後面可以接數字或是底線。 最多只能有 31 個字母,MATLAB 會忽略多餘字母。 MATLAB 在使用變數時,不需預先經過變數宣告(Variable Declaration)的程序,而且所有數值變數均以預設的 double 資料型態(佔用8個bytes)來儲存。 Quiz!

加入註解 若要加入註解(Comments),可以使用百分比符號(%)例如: >> y = (5*2+3.5)/5; % 將運算結果儲存在變數 y,但不用顯示於螢幕 >> z = y^2 % 將運算結果儲存在變數 z,並顯示於螢幕 z = 7.2900

Quiz About MATLAB What is the package of numerical linear algebra used by MATLAB currently? Lapack What is the MATLAB command to test the speed of your computer? bench What is the default data type of variables in MATLAB? double How do you create comments in a MATLAB program? “%” or “%{…%}”

2-2 向量與矩陣的處理 MATLAB 中的變數還可用來儲存向量(Vectors)及矩陣(Matrix),以進行各種運算,例如: 2-2 向量與矩陣的處理 MATLAB 中的變數還可用來儲存向量(Vectors)及矩陣(Matrix),以進行各種運算,例如: >> s = [1 3 5 2]; % 注意 [] 的使用,及各數字間的空白間隔 >> t = 2*s+1 t = 3 7 11 5

矩陣的各種處理 MATLAB 亦可取出向量中的一個元素或一部份來做運算,例如: t = 3 7 2 5 >> t(3) = 2 % 將向量 t 的第三個元素更改為 2 t = 3 7 2 5 >> t(6) = 10 % 在向量 t 加入第六個元素,其值為 10 3 7 2 5 0 10 >> t(4) = [] % 將向量 t 的第四個元素刪除,[] 代表空集合 3 7 2 0 10

建立大小為 m×n的矩陣 常用名詞:橫列row, 直行column 欲建立矩陣,可在每一橫列結尾加上分號(;),例如: >> A = [1 2 3 4; 5 6 7 8; 9 7 6 4]; % 建立 3×4 的矩陣 A >> A % 顯示矩陣 A 的內容 A = 1 2 3 4 5 6 7 8 9 7 6 4

矩陣的內部儲存方式 MATLAB的二維矩陣的內部儲存方式是column-major (C/C++語言則是row-major) 例如: >> A = [1 2 3; 5 6 7; 9 7 6]; % 建立 3×3 的矩陣 A >> A % 顯示矩陣 A 的內容 A = 1 2 3 5 6 7 9 7 6 內部儲存方式: 1 5 9 2 6 7 3 7 6 Quiz!

mxn矩陣的各種處理 (1) >> A(2,3) = 5 % 將矩陣 A 第二列、第三行的元素值,改變為 5 A = 1 2 3 4 5 6 5 8 9 10 11 12 >> B = A(2,1:3) % 取出矩陣 A 的第二橫列、第一至第三直行,並儲存成矩陣 B B = 5 6 5

mxn矩陣的各種處理 (2) >> A = [A B'] % 將矩陣 B 轉置後、再以行向量併入矩陣 A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 >> A(:, 2) = [] % 刪除矩陣 A 第二行(:代表所有橫列,[]代表空矩陣) 1 3 4 5 5 5 8 6 9 11 12 5

mxn矩陣的各種處理 (3) >> A = [A; 4 3 2 1] % 在原矩陣 A 中,加入第四列 A = 1 3 4 5 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 >> A([1 4], :) = [] % 刪除第一、四列(:代表所有直行,[]是空矩陣) 9 11 12 5

mxn矩陣的各種處理 (4) >> B = A(:, [4 2 3]) % 從矩陣 A 抽出第4, 2, 3行 B = 6 5 8 5 11 12 >> A=magic(5); B=A([2 5 3], [1 4]) 23 14 11 2 4 20

Quiz Matrix manipulation Write a one-line MATLAB statement for the following short questions: Change element 3 of vector x by multiplying it by 5. x(3)=5*x(3) Delete element 3 from vector x. x(3)=[] Delete row 2 from matrix A. A(2,:)=[] Delete columns 2 and 4 from matrix A. A(:,[2,4])=[] Swap rows 1 and 3 of matrix A. A([1 3], :)=A([3 1], :) Extract columns 4, 2, and 5 of matrix A and assign them to matrix B. B=A(:, [4 2 5])

2-3 常用數學函數 MATLAB 是一個科學計算軟體,因此可以支援很多常用到的數學函數 2-3 常用數學函數 MATLAB 是一個科學計算軟體,因此可以支援很多常用到的數學函數 y = abs(x)  取 x 的絕對值 y = sin(x)  取 x 的正弦值 y = exp(x)  自然指數 exp(x) y = log(x)  自然對數 ln(x) MATLAB 也支援複數運算,通常以 i 或 j 代表單位虛數 若變數i或j已經被指定成其它值,如何重設: i=sqrt(-1);

向量矩陣的運算 提醒: 有一些函數是特別針對向量而設計 若x是矩陣,上述指令會針對每一直行來進行運算。 y = min(x)  向量 x 的極小值 y = max(x)  向量 x 的極大值 y = mean(x)  向量 x 的平均值 y = sum(x)  向量 x 的總和 y = sort(x)  向量 x 的排序 提醒: 若x是矩陣,上述指令會針對每一直行來進行運算。 可以使用 x=magic(5) 來進行測試。 Quiz!

線上支援 help:查詢指令的用法(顯示於命令視窗)。 doc:查詢指令的用法(顯示於線上支援視窗) 例如:help mean doc:查詢指令的用法(顯示於線上支援視窗) 例如:doc mean lookfor:用來尋找未知的指令。找到所需的指令後,即可用 help 進一步找出其用法。 helpwin 或 helpdesk:顯示線上支援視窗(其效果等同於直接點選 MATLAB 命令視窗工作列的圖示)。

2-4 程式流程控制 MATLAB 提供重複迴圈(Loops)及條件判斷(Conditions)等程式流程控制(Flow Control)的指令 for 迴圈是最常用到的重複運算,其中迴圈變數會依次取用每個行向量來進行運算,格式如下: for 變數 = 向量 運算式; end

流程控制 while 迴圈(While-loop) if – else – end while 條件式 運算式; end else

2-5 M檔案 M檔案 M檔案可分兩類 附檔名為m的檔案,可看成是 MATLAB 的程式檔 Script (底稿、腳本):所有變數均保留 Function (函數、函式):只有輸出入變數被保留,其它所有變數會隨著函數執行結束而消失

M檔案-底稿 若要一次執行大量的 MATLAB 指令,可將這些指令存放於一個副檔名為 m 的檔案,並在 MATLAB 指令提示號下鍵入此檔案的主檔名即可。 所有變數都會被保留在工作空間,可以隨時檢查其值。 >> pwd % 顯示目前的工作目錄 >> cd d:\matlabBook\MATLAB程式設計:入門篇\02-初探 MATLAB >> type myTest.m % 顯示 myTest.m 的內容 >> myTest % 執行 myTest.m

M檔案-函數 函數提供更好的包裝,可以一再重複使用,而且只有輸入和輸出變數被保留下來,避免變數相衝。 範例: function len=vecLength(vec) % vecLength: Return the length of a vector sum=0; for i=1:length(vec) sum=sum+vec(i)*vec(i); end len=sqrt(sum);

M檔案-函數:遞迴函數 非遞迴函數 (non-recursive function) 遞迴函數 (recursive function) function out=fact01(n) out=1; for i=1:n out=out*i; end function out=fact02(n) if n==1 out=1; return end out=n*fact02(n-1);

2-6 搜尋路徑 與搜尋路徑相關指令 path: 檢視 MATLAB 已設定的搜尋路徑 which: 查詢某一特定指令所在的搜尋路徑 addpath: 將目錄加入 MATLAB 的搜尋路徑 rmpath: 將目錄從 MATLAB 的搜尋路徑移除

2-7 工作空間與變數的儲存及載入 MATLAB 在進行各種運算時,會將變數儲存在記憶體內,這些儲存變數的記憶體空間稱為基本工作空間(Base Workspace)或簡稱工作空間(Workspace) who: 檢視現存於工作空間(Workspace)的變數, whos: 列出工作空間變數的詳細資料 clear: 刪除工作空間的變數 save: 儲存工作空間的變數

檢視工作空間變數的其他方式 使用 clear 指令來清除或刪除工作空間內的某一特定或所有變數,以避免記憶體的閒置與浪費 不加任何選項(Options)時,save 指令會將工作空間內的變數以二進制(Binary)的方式儲存至副檔名為 mat 的檔案 save:將工作空間的所有變數儲存到名為 matlab.mat 的 二進制檔案。 save filename:將工作空間所有變數儲存到名為 filename.mat 的二進制檔案。 save filename x y z:將變數 x、y、z 儲存到名為 filename.mat 的二進制檔案。

2-8 離開 MATLAB 在命令視窗內,鍵入 exit 指令。 在命令視窗內,鍵入 quit 指令。 直接關閉 MATLAB 的命令視窗。