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

Slides:



Advertisements
Similar presentations
營養滿分 ~ 健康講座 軒泰食品有限公司 營養師李錦惠 桃園縣內海國民小學. 飲食金字塔 每日所需的飲食建議量 目的 : 提供均衡的營養與熱量 建議量 :1. 五榖根莖類 :3~6 碗 2. 蔬菜類 :3 碗 3. 水果類 :2 碗 4. 蛋豆魚肉類 :3~4 份 5. 奶類 :1~2 杯 6.
Advertisements

应用地球物理卓越人才培养体系构建与实践 吉林大学地球探测科学与技术学院 刘 财 经验交流.
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
第6章 Photoshop 的浮动面板 本章节学生应熟练掌握Photoshop的浮动面板的组成和使用。 教学重点:
烘焙丙級麵包產品 數位學習 紅豆餡甜麵包 高雄應用科技大學 觀光管理系觀光與餐旅管理碩士班 林庭榛.
概述 6.1 导航器面板 6.2 信息面板 6.3 调色板面板 6.4 色板面板 6.5 样式面板 6.6 历史记录面板
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
对本书、视频等任何MATLAB问题,作者做到有问必答!
第五章 图像的校正和配准 数字图像与矩阵 灰度与直方图 图像产品处理流程 辐射校正 几何校正 校正方法应用.
應用於BIM科技中 幾何平面切割與解構 教案設計人:Shuyi.
“机票预定”操作流程.
你喝的水健康嗎? 探討飲用水的功效 製作人:孫定達.
MATLAB小结、 经典迭代法、CG.
Adobe Illustrator Speaker:林昱志.
市八中学 胡亮平 办公室:F504 高中信息科技 市八中学 胡亮平 办公室:F504
Matlab教學 Speaker:林昱志 Date:2012/10/18.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
MATLAB程序设计基础 MATLAB的图形处理.
生活中的數學 夫妻財產與繼承 通識教育中心 陳建宏.
——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
聲音檔和 Video 檔的讀與寫 (by Matlab)
第三章 影像顯示 3.1 前言 看看空間解析度和量化會如何影響影像的顯示,尤其是影像品質的部分,各種影像的屬性如何影響到顯示的品質。
Chap.3 二維平面繪圖 方煒 台大生機系.
Visual Basic 6.0 學習範本 第三章 基本資料型態.
張智星 清大資工系 補充內容:方煒 台大生機系
數位影像處理 2 影像與MATLAB.
第3章 變數、資料型別與運算子.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
第9章 自訂資料型態 – 結構 9-1 結構資料型態 9-2 結構陣列 9-3 指標與結構 9-4 動態記憶體配置 9-5 聯合資料型態
Application of Matlab Language
第7章 MATLAB图形用户界面设计 7.1 菜单设计 7.2 对话框设计 7.3 用户界面设计工具.
第4章 MATLAB绘图 4.1 MATLAB二维曲线绘图 基本绘图指令 1.plot(Y) 功能:画一条或多条折线图.
第八讲 MATLAB图形用 户界面设计.
張智星 清大資工系 多媒體檢索實驗室 第九章: 矩陣的處理與運算 張智星 清大資工系 多媒體檢索實驗室.
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
六頂 思考 帽 SIX THINKING HATS 組員:李冠興 李啟銘 粘婉菁.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
2 数字图像基础 赵国庆 博士 北京师范大学教育技术学院
引 言.
Introduction to MATLAB
第九章: 矩陣的處理與運算 張智星 (Roger Jang)
第一章 數位影像的概念.
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
授課教授:張寶基 助教:梁凱雯 郭千豪 音視訊處理實驗室 2014 / 9 / 30
§ 9.1常用数学软件简介及MATLAB基础知识
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
第2章 MATLAB程序设计 编者.
OOP6 結構Struct 黃兆武.
第九单元 第1课 实验 Matlab动画 1.洛仑兹非线性奇异方程所描述的无序运动 2.作y=sin(x)的程序动画(1)
第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
MATLAB 程式設計入門篇 二維平面繪圖 改自張智星講義
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
第二章 类型、对象、运算符和表达式.
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
外研版三起第一册英语 Module 4 Colours Unit 1 It's red.
西南科技大学网络教育系列课程 数学软件 数学软件 第3讲 MATLAB数组与运算 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
變數與資料型態  綠園.
(注意)表示的飽和度、亮度是基準值。因為色頻的關係,有可能有所調整。
Presentation transcript:

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

Outline 字串與字元 結構陣列 多質陣列 基本的繪圖指令 二維繪圖區域控制 影像處理指令

字串與字元 數個字元(characters)可以構成一個字串(strings)。 一個字串是被視為一個列向量(row vector)進行儲存。 此一字串中的每一字元(含空白字元),是以其 ASCII 碼的形式存放於此列向量中的每一個元素(element)。 >> str1 = ['M' 'a' 't' 'l' 'a' 'b'] >> str2 = Matlab

字串裡每一個字元是以ASCII碼的型式來存放,只是在顯示是以字元的方式來顯示。 字串與字元 字串裡每一個字元是以ASCII碼的型式來存放,只是在顯示是以字元的方式來顯示。 如果要顯示字串每一個字元的ASCII碼,可用double函數。 >> ascii = double(str1) double ASCII碼 77 97 116 108 97 88 str1 = [‘M’ ‘a’ ‘t’ ‘l’ ‘a’ ‘b’]

ASCII碼轉換成字串,可用char函數。 >> char(ascii ) 字串與字元 ASCII碼轉換成字串,可用char函數。 >> char(ascii ) char 77 97 108 97 88 str1 = Matlab

在Matlab裡,可以利用二維的陣列來儲存兩個或兩個以上的字串。 字串與字元 在Matlab裡,可以利用二維的陣列來儲存兩個或兩個以上的字串。 season =['Spring'; 'Summer'; 'Autumn']; 字串長度不一,會出現錯誤訊息。 month=['April' ; 'May' ; 'Jume']; 補入空白字元,使字串長度相等。 month=['April' ; 'May ' ; 'Jume ' ];

字串與字元 字串與數值轉換函數 指令與函數 說明 int2str(x) 先將x四捨五入轉換成整數,再將它轉成字串。 num2str(x) num2str(x, n) 將x轉換成字串,並以n位數來表示。 mat2str(x) 將陣列x轉換成Matlab的表示方式,但以字串來顯示。 str2num(str) 將字串str以eval函式求值,如果不能轉換,則回應空陣列。 str2double(str) 將字串str轉換成數值,如果不能轉換,則回應NaN。

結構陣列 陣列只能存放一群相同的資料形態,結構(structure)就沒有這個限制。 『結構』可以把不同的資料形態組合起來,形成一個新的資料形態,這就是『結構』的概念。 Matlab結構的概念源自於C語言,因此其語法也和C語言的結構非常類似。 每一個結構陣列(structure array)可以包含很多個元素,每一個元素可以看成是一筆資料。因此每個元素可以包含數個欄位(fields),而每個欄位可包含各個不同型態的資料。

結構陣列 例如一個包含學生(student)個人資料的結構陣列,可能含有的欄位是name(學生姓名)、id(學號)、scores(小考成績)等。要建立此種結構,可在指令列直接輸入個欄位的值 結構 欄位 student name 橘子 id R95631020 scores 國文 英文 數學

過去必須使用不同形態的變數來儲存,但有Matlab所提供的變數可以將有關連性,形態不同的資料放在同一個變數裡。 結構陣列 過去必須使用不同形態的變數來儲存,但有Matlab所提供的變數可以將有關連性,形態不同的資料放在同一個變數裡。 結構可分為兩大部分,即『結構名稱』與『欄位名稱』。 不論是設定或是取用結構的欄位,只要依循: 結構名稱﹒欄位名稱

Example >> student.name='THU'; >> student.id='R95631020'; >> student.scores=[80 50 60]; >> student =struct('name', '柚子', 'id', 'R95631024', 'scores',[80 50 60]);

多質陣列 多質陣列與結構陣列的概念相近,但其比結構陣列更具有彈性。 多質陣列的英文為cell array,cell是小組織之意,代表這個陣列裡,每一個元素都可以是不同的型態。

多質陣列 在一般陣列中元素必須為數值,但在多質陣列中的每個元素可為不同的資料形態。 多質陣列產生方式和一般陣列的產生方式相似,只是此時是使用中括號『{ }』。

>> cell = {'cell array' , 1234 ; [ 1 2 ; 3 4 ] , {[1 2], 'str'}} Example >> cell = {'cell array' , 1234 ; [ 1 2 ; 3 4 ] , {[1 2], 'str'}} ‘cell array’ 1234 cell = 1 3 ‘str’ 1 2 2 4

元素取出之方式,以及其索引和一般陣列相似。 多質陣列 元素取出之方式,以及其索引和一般陣列相似。 1 3 cell {2,1}= ‘cell array’ 1234 2 4 2 cell = cell {2,1}(2,1)= 1 3 ‘str’ 1 2 2 4 1 cell {2,1}{1,1}(1,1)=

利用多質陣列索引法(cell indexing)來建立多質陣列。 此方法為依元素所在之陣列位置來建立元素,且每一個元素是以大括號刮起來。 ‘cell array’ 1234 >> cell(1,1)={'cell array'} ; >> cell(1,2)={ 1234 }; >> cell(1,3)={ [1 2 ; 3 4]}; 1 3 2 4

另一種設定多質陣列的方法為內容索引法(content indexing)。 此方法和先前提到的多質索引法相似,只是這種方法是把矩陣的索引值的括號改為大括號。 ‘cell array’ 1234 >> cell {1,1}='cell array'; >> cell {1,2}=1234; >> cell {1,3}=[1 2 ; 3 4] 1 3 2 4

完整顯示多質陣列的元素,可使用以下的函式。 指令與函數 說明 celldisp(A) 或 A(:) 顯示出多質陣列A的詳細內容。 cellplot(A) 以圖的方式顯示多質陣列A的配置方式。 >> cell = {'cell array', 1234 ; [ 1 2 ; 3 4 ] , {[1 2], 'str'}} cellplot(cell)

? 基本繪圖函數使用 plot函數使用 函數 說明 plot(x,y) 以x為資料點的向量組成橫坐標;以y為資料點的向量組成縱坐標。 以x向量之索引組成橫坐標;以x為資料點的向量組成縱坐標。 x 2 4 6 8 ? y 3 1 7 5 2

基本繪圖函數使用 plot函數使用 函數 說明 plot(x,y) 以x為資料點的向量組成橫坐標;以y為資料點的向量組成縱坐標。 以x向量之索引組成橫坐標;以x為資料點的向量組成縱坐標。 (4,7) x 2 4 6 8 Plot(x,y) (8,2) (0,3) y 3 1 7 5 2 (6,5) (2,1)

基本繪圖函數使用 二維重複繪圖 畫出多條曲線時,會自動輪換曲線顏色。 同常是藍、綠、紅、···。 >> x = 0:0.1:6 ; >> plot(x,cos(x),x,sin(x),x,cos(x)+sin(x));

基本繪圖函數使用 修飾plot函數所繪出之圖形 函數 說明 plot(x , y , 'str') 以字串str所指定的格式繪出二維圖形。 plot(x2 , y2 , 'str1' , x2 , y2 , 'str2' ,…) 以字串str1所指定的格式繪出(x1,y1)圖形,以字串str2所指定的格式繪出(x2,y2)圖形,以此類推。 plot(x , y , 'str' , 'p_str', property , …) 根據繪圖性質p_str來繪圖,其中p_str可為: LineWidth-設定線條寬度。 MarkerFaceColor-設定標記顏色。 MarkerEdgeColor-設定標記的邊框顏色。 MarkerSize-設定標記大小。

基本繪圖函數使用 plot函數控制碼,資料點的顯示符號。 符號 說明 . 繪點。 * 繪出星號 o 繪出小圓 + 繪出加號 x 繪出打叉符號 s或square 繪出正方形 d或diamond 繪出菱形 p或pentagram 繪出五角形 h或hexagram 繪出六角形 none 部會出任何圖形

基本繪圖函數使用 plot函數控制碼,控制線條樣式 線條樣式 說明 -(減號) 實線(預設) 。 -- 虛線。 -. 虛線和點連成之線段。 : 由點連成之線段。 none 不繪出線段。

基本繪圖函數使用 plot函數控制碼,控制線條顏色 線條顏色 說明 g 綠色(green) m 紫色(magmata) b 藍色(blue) (預設) c 青色(cyan) w 白色(white) r 紅色(red) k 黑色(black) y 黃色(yellow)

Example >> x1=1:0.5:6; >> y1=cos(x1); >> x2=1:0.5:6; >> y2=sin(x2); >> plot(x1 , y1 , '*' , x2 , y2 , 'd') >> plot(x1 , y1 , '*--' , x2 , y2 , 'd:') >> plot(x1 , y1 , ' *--m ' , x2 , y2 , 'd:b') >> plot(x1 , y1,'h--m','MarkerFaceColor','c','MarkerSize',14)

二維繪圖區域控制 設定是否顯示圖形格線與外框 >> grid on >> box off 函數 說明 grid 設定是否顯示格線,設定on為顯示,設定off為不顯示。 box 設定是否顯示圖形外框,設定on為顯示,設定off為不顯示。

二維繪圖區域控制 設定圖形產生方式與建立一個新的圖形視窗 數圖型合併Subplot函數用法 指令 說明 函數 說明 hold 設定hold on時,則產生的圖形繪疊加在原有的圖形上,若設定off,則原有的圖形會被新的圖形覆蓋掉(預設)。 figure 建立一個新的繪圖視窗,視窗的標題為Matlab自動設定。 figure(n) 建立一個新的視窗,視窗的標題為Figure n。若Figure n為 函數 說明 subplot(m,n,p) 把繪圖視窗分為m×n區域,並在第p個位置建立子繪圖區域,位置p的計算方式是由左而右,由上而下來排列。

Example >> x1=1:0.5:6; >> y1=cos(x1); >> x2=1:0.5:6; >> y2=sin(x2); >> subplot(2,2,1) >> plot(x1,y1,'-ro') >> subplot(2,2,2) >> plot(x2,y2,'-ro')

二維繪圖區域控制 圖形中加入註解以及文字 函數 說明 title(‘text‘) 設定圖形之標題文字為text。 xlabel(‘text‘) 設定x軸的解說文字為text。 ylabel(‘text‘) 設定y軸的解說文字為text。 zlabel(‘text‘) 設定z軸的解說文字為text。

二維繪圖區域控制 加入圖形標定 函數 說明 legend(str1,str2,…) 設定圖例標定字串。 legend(str1,str2,…,pos) 設定圖例標定位置,1是將圖例放在右上角,2是將圖例放在左上角,3是將圖例放在左下角,4是將圖例放在右下角。 legend off 清除標記。 text(x,y,’text‘) 在圖形中位置(x,y)之處加入註解文字。

Example >> plot(x1 , y1 , ' *--m ' , x2 , y2 , 'd:b') >> xlabel('x') >> ylabel('y') >> title(‘2012/10/25 Example') >> legend('cos(x)','sin(x)')

Bit & Byte 位元(bit) 位元組(byte) 是指電腦內部利用電流原理代表資料的動作。 通常電流在主機板上有兩種狀態,那便是電流可流過的通路與切斷電流的斷路。 若將它數值化,便是1(代表通路)和0(代表斷路)兩種狀態。 位元組(byte) 每個位元組有8個位元。 在電腦中,位元組就成為電腦資料中「文字」的基本單位,每個「文字」(包括英文字母、中文字、數字、符號等)都可以用位元組表示。 1 Bit 1 Byte

Bit & Byte 二進位轉十進位 1 2 3 255 計算法: 163 27 26 25 24 23 22 21 20

n-bit的整數型態 Matlab在n-bit的整數型態 資料型態 說明 位元組 最大值 最小值 int8 8-bit整數 1 127 -128 uint8 8-bit無號整數 255 int16 16-bit整數 2 32767 -32768 uint16 16-bit無號整數 65535 int32 32-bit整數 4 2147483647 -2147483648 uint32 32-bit無號整數 4294967295 int64 64-bit整數 8 9223372036854775807 -9223372036854775808 uint64 64-bit無號整數 18446744073709551615

若數值範圍超過該資料型態則會顯示Inf。 兩種不同精度在作運算時,會以Single為主 單精度Single &倍準度Double 若數值範圍超過該資料型態則會顯示Inf。 兩種不同精度在作運算時,會以Single為主 非必要,不要將Double轉為Single ,可能會失去一些數字精度。 資料型態 說明 位元組 最大值 最小值 single 單精度 4 3.4028×1038 1.1755×10-38 double 倍精度 8 1.7977×10308 2.2251×10-308

imread和imwrite則是針對影像檔案。 影像處理指令 基本的儲存、讀取、寫入指令 save和load是針對MAT 檔案。 imread和imwrite則是針對影像檔案。 函數 說明 save(file,variable) 將workspace裡的變數存成mat檔案 load(file) 讀取.mat檔案 imwrite(variable,file) 寫入影像檔 imread(file) 讀取影像檔 imfinfo(file) 顯示影像檔案的資訊

影像處理指令 prime_list=primes(1000); mag=magic(3); save(‘my_data’, ‘prime_list’, ‘mag’); 將變數存取為my_data clear load(‘my_data’) 載入my_data裡所有的變數 var=load(‘my_data’) 載入my_data裡所有變數並指定給結構陣列之 變數var clear load(‘my_data’, ‘mag’); 載入my_data裡所有指定的變數 m=load(‘my_data’, ‘mag’); 載入my_data裡所指定的變數,並指定 給結構陣列之變數m

Example >> Lena = Imread('Lena.tiff'); >> imfinfo(Lena) >> imshow(Lena) >> imtool(Lena) 兩種常用的影像檢視工具,imshow介面是一般通用,imtool則是專門為影像設計,由影像處理工具箱提供。

Example >> Lena = imread('Lena.tiff'); >> imshow(Lena); >> A = Lena(:,:,1); >> B = Lena(:,:,2); >> C = Lena(:,:,3); >> figure; imshow(A); >> figure; imshow(B); >> figure; imshow(C);

影像運算處理 數值轉換函式 所有的基本資料類別名稱就是一個轉換函數,不過要注意轉換時溢位的問題。 注意影像的資料型態轉換imxxx(),會自動處理’溢位’,這裡指的溢位問題是色彩空間的最大值和最小值,須注意適用的場合。 函數 說明 im2uint8 將圖像轉換成8位無符號整數 im2double 將圖像轉換為雙精度 mat2gray 轉換矩陣為灰階圖像 rgb2gray 轉換RGB影像為灰階圖像 ind2gray 轉換索引影像為灰階圖像

Example >> Dena = double(Lena); >> Lena = im2double(Lena); >> Gena = rgb2gray(Lena); >> Baboon = im2double(imread('Baboon.tiff')); >> Jet = im2double(imread('Jet.tiff')); >> imtool (0.5*Jet + Baboon, [])

影像運算處理 讀取摻雜文字與數據資料的檔案 利用textread讀取.txt的檔案。 >> textread('b01.txt' , '%s')