張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室

Slides:



Advertisements
Similar presentations
發現生命的力量 — 陳樹菊阿嬤,來了 … 《不凡的慷慨》書籍賞析. 你所知道的陳樹菊  2010 《富比世》雜誌亞洲慈善英雄! 2010 美國《時代》雜誌最具影響力百大人物! 《讀者文摘》亞洲英雄!  導演李安﹕「她的生活稱不上富裕,仍然陸續捐贈 了將近一千萬台幣幫助數個不同的單位 … 」
Advertisements

1 教師敘薪 Q & A 教師敘薪 Q & A 新竹縣立新湖國中 陳淑芬 新竹縣立自強國中 楊美娟
103 學年度縣內介聘申請說明會 南郭國小 教務主任張妙芬.  重要作業日程 : 1 、 5/1( 四 ) 前超額學校 ( 含移撥超額 ) 備文函報縣府教 育處輔導介聘教師名單 2 、 5/7( 三 ) 超額教師積分審查( 9 : : 00 、 13 : : 00 )。 3.
大學甄選申請入學 〃備審資料 〃面試. 確認你的追求對象 學校環境概況 系別特質 有無交換學生 未來出路 性質相似的科系要清楚之間的差別 ex: 社會福利學系,社會工作學系, 社會學系.
人文行動考察 羅東聖母醫院 老人醫療大樓 吳采凌 黃玨宸 劉映姍 陳嫚萱.
焦點 1 陸域生態系. 臺灣的陸域生態系 臺灣四面環海 黑潮通過  高溫, 雨量充沛 熱帶, 亞熱帶氣候.
資源問題與環境保育 第 6 章. 學完本章我能 ……  知道中國土地資源的問題與保育  了解中國水資源的問題與保育  知道中國森林資源的問題與保育  能分析自然環境和人文環境如何影響人類 的生活型態  說舉出全球面臨與關心的課題.
景美樣品房工程變更 / 追加請款 / 說明 102/08/09 樣品房停工 102/10/10 樣品房完工 102/09/26 向工務部提出 追加工程估價單 102/10/25 經工務部審核 轉送採發部門 102/09/03 工地會議 確認後續施工方式 102/11/ /11/ /12/09.
Matlab 教學 Speaker :陳珮妮 Date : 2013/03/14 1. Outline  MATLAB 簡介  算術邏輯運算  Matlab 陣列  Matlab 矩陣 2.
統計之迷思問題 保險 4B 張君翌. 迷思問題及教學者之對策 常見迷思概念教學者之對策 解題的過程重於答案 例 : 全班有 50 位同學,英文不及格的有 15 人,數學不及格的有 19 人,英文與 數學都及格的有 21 人。請問英文與數 學都不及格的有幾人? 老師常使用畫圖來解決這樣的問題,英文和.
社團法人台南市癲癇之友協會 講師:王乃央老師
寓言 何謂寓言? 寓言中的主角選擇 以動物為主角,形象分析—以成語及諺語中來歸納動物形象 以人為主角,形象分析
人力資源管理 Starbucks DIM 李念靜 DIM 伍嘉密 DIM 戴逸銓
第七章 外營力作用 第一節 風化 第二節 崩壞 第三節 侵蝕與堆積.
两汉文学及汉代诗歌.
近现代文学概说.
物理治療師之僱傭關係 九十二年四月十二日.
勿讓權利睡著- 談車禍之損害賠償與消滅時效.
二、開港前的經濟發展 (一)土地開墾和農業發展 1.漢人移民的遷徙與拓墾 (1)遷徙 A.居住區 a.泉州人最多:沿海
設計新銳能量輔導 實習期中感想 實習生:賴美廷 部落格:TO13004.
日本的〈地獄劇〉 與 中國的〈目連戲〉.
授課教師:羅雅柔 博士 學員:吳沛臻/邱美如/張維庭/黃茹巧
國小教師檢定經驗分享 分享者:胡瑋婷 現職:國語日報語文中心寫作班教師 閱讀寫作營教材編輯及任課講師 榮獲「教育部教育實習績優獎」全國第三名.
民主政治的運作
教育與學習科技學系 103學年度課程說明 103年9月2日.
國有不動產撥、借用法令與實務 財政部國有財產局 接收保管組撥用科 蔡芳宜.
公務人員 育嬰留職停薪權益.
大學教、職員之法義務規範與法律效果 台南地檢署林仲斌.
第三課 政府的組織、功能與權限 一、內閣制 壹、民主國家的政府體制 二、總統制 三、混合制 四、小結 一、前言 貳、我國的中央政府體制
蘭亭集序 第一段 永和九年,歲在癸丑,暮春之初,會于會稽山陰之蘭亭,脩禊事也。群賢畢至,少長咸集。此地有崇山峻嶺,茂林脩竹,又有清流激湍,映帶左右。引以為流觴曲水,列坐其次。雖無絲竹管絃之盛,一觴一詠,亦足以暢敘幽情。
明代開國謀臣 劉伯溫 組員:吳政儒 林天財 王鈴秀 陳冠呈 施典均 李孟儒.
中五級中史科及通識科跨科研習 研習大澳的「宗教文化」─ 廟宇的研習 指導老師:周婉儀老師 組員: 陳偉欽 5a (15)
中央與地方教育權限 第八組 王湘婷 邱淑婷 全 彥 洪英博
中國宦官 鄭永富 鄭雅之 莊尉慈.
盧世欽 律師 鼎禾律師聯合事務所 民國 一○四 年 九 月 十八 日
您買美元了嗎? 退休規劃 全球外幣保單.
簡報大綱 壹、親師溝通 貳、學生不當行為的處理 參、學生輔導 肆、個案研討分析.
福山國小 100學年度 新生家長始業輔導.
貨物稅稅務法令介紹 竹東稽徵所.
九年一貫課程綱要微調 健康與體育領域召集人 「課綱微調轉化」研習
公私立大學特色介紹 (以第二類組為主) 報告人:吳婉綺.
0806班 全卷100分 语言基础与阅读60分 作文40分 赵宇成 高 洁 李欣然 龚妙岚 唐紫晔 石峰源 王俊然 游景稀 雷力行 卢倩雯
危險情人的特徵 危險情人的特徵.
機關團體所得稅申報實務 中區國稅局苗栗縣分局第一課林天琴.
幼兒環境學習規畫 期末報告 指導老師:蔡其蓁 老師
財政部臺灣省北區國稅局中壢稽徵所 各類所得扣繳暨免扣繳法令.
國語文好點子趴辣客教學食譜 甜點:〈焦糖鳥布蕾〉
契約 課程:文書實務與應用 教師:黃湃翔老師.
「103年寒假教育優先區中小學生營隊」 校外補助計畫申請說明會.
水土保持法中「連續處罰」及「限期改正」制度之法律研究
國有公用財產管理及被占用處理暨活化運用法規與實務(含座談) 104年度教育部暨部屬機關學校總務人員研習會-不動產管理班
張智星 清大資工系 補充內容:方煒 台大生機系 小幅修改:吳俊仲 長庚機械系
張智星 清大資工系 補充內容:方煒 台大生機系
提升國民小學教師健康教育專業能力三年計畫
張智星 清大資工系 多媒體檢索實驗室 第九章: 矩陣的處理與運算 張智星 清大資工系 多媒體檢索實驗室.
奢侈稅成效分析與房市未來發展 吳中書 中華經濟研究院 第十九屆亞太財務經濟會計及管理會議 ~07.09.
第九章: 矩陣的處理與運算 張智星 (Roger Jang)
MATLAB 程式設計入門篇 初探MATLAB
馬公高中100學年101大學博覽會 專題演講 演講主題 如何選填適合自己的大學科系
共有六個運算性質 包括它的證明以及相關題型
性騷擾防治宣導.
創業環境分析與 風險評估 赫斯提亞負責人:謝馥仲先生 主講 演講時間 : 2008/05/01.
異質陣列 (Cell Arrays) 方煒 台大生機系.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
葉脈標本的創意製作.
穿出自我… 高一家政.
智慧財產權管理講次36 積體電路電路布局保護法(1) 主講:吳銘圳
財政四 徐瑜鴻 財政四 林博硯 財政四 陳玄恩 財政四 王張皓鈞 財政四 李定瑜
品格:熱 性格的培養6親熱就,48頁。 (一)什麼是熱.
Presentation transcript:

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

本章重點 異質陣列(Cell Arrays) 主要功能 本章重點 MATLAB 在第五版之後才支援的資料型態 將不同的資料型態儲存於同一個陣列之中 本章重點 建立異質陣列 顯示異質陣列 取用異質陣列

異質陣列(Cell Arrays) 可儲存各種不同型態的 MATLAB 資料 Cell Arrays => 盒子陣列?胞陣列? 「異質」 => 「不同性質的資料型態」

建立異質陣列 - Cell Indexing 做法:設定異值陣列的元素時,在元素值加上 {} Ex: cell01.M A(1,1) = {'This is the first cell.'}; A(1,2) = {[5+j*6 , 4+j*5]}; A(2,1) = {[1 2 3; 4 5 6; 7 8 9]}; A(2,2) = {{'Tim'; 'Chris'}}

Cell-Indexing (cont) 上例建立了一個二維異質陣列A:2*2內容如下: A(1,1): 'This is the first cell' 字串 A(1,2): [5+j*6 4+j*5] 1*2複數陣列 A(2,1): 1 2 3 4 5 6 7 8 9 3*3整數陣列 A(2,2): {'Tim', 'Chris'} 2*2異質陣列

建立異質陣列 - Content Indexing 做法:矩陣使用()來定址 → 異質陣列使用{}來定址 Ex: cell02.m A{1,1} = 'this is the first cell.'; A{1,2} = [5+j*6, 4+j*5]; A{2,1} = [1 2 3; 4 5 6; 7 8 9]; A{2,2} = {'Tim'; 'Chris'} 結果同上例

建立異質陣列 – 使用大括號 {} 第三種方法是直接用大括號一次把所有元素括起來 Ex: >> B = {'James Bond', [1 2;3 4;5 6]; pi, magic(5)} >> C = {rand(3), ones(2); zeros(5), randperm(4)} B = 'James Bond' [3x2 double] [ 3.1416] [5x5 double] C = [3x3 double] [2x2 double] [5x5 double] [1x4 double]

異值陣列的合併 對於異質陣列的合併,大致上跟陣列合併相同 範例如下 (B,C如上頁) : >> M = [B C] % 將異質陣列 B 及 C 左右並排 M = 'James Bond‘ [3x2 double] [3x3 double] [2x2 double] [ 3.1416] [5x5 double] [5x5 double] [1x4 double]

異質陣列的內容顯示 若在 MATLAB 指令視窗內,直接呼叫異質陣列的名稱,MATLAB 通常不直接顯示異質陣列各元素的值,而只能顯示各元素的資料型態及維度 範例: >> A A = 'this is the first cell.' [1x2 double] [3x3 double] {2x1 cell }

Cellplot圖示型態 cellplot 指令可將異質陣列的內部資料型態,以圖形的方式顯示 Ex:cell03.m A{1,1} = 'this is the first cell.'; A{1,2} = [5+j*6, 4+j*5]; A{2,1} = [1 2 3; 4 5 6; 7 8 9]; A{2,2} = {'Tim'; 'Chris'}; cellplot(A) % 以圖形的方式顯示異質陣列 A 的內部資料型態

Result

celldisp顯示 Ex: >> celldisp(A) % 顯示異質陣列 A 各個構成元素的實際內容 A{1,1} = this is the first cell. A{2,1} = 1 2 3 4 5 6 7 8 9 A{1,2} = 5.0000 + 6.0000i 4.0000 + 5.0000i A{2,2}{1} = Tim A{2,2}{2} = Chris

Content Indexing 顯示 先前提過建立異質陣列的方法 - Content Indexing,其實也可以用來直接將異質陣列 A 的各個構成元素內容一次全部顯示出來 用法: 要查看A的內容,在MATLAB下直接輸入: >> A{:} % 顯示異質陣列 A 的全部構成元素

Result ans = this is the first cell. 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 5.0000 + 6.0000i 4.0000 + 5.0000 ‘Tim’ ‘Chris’

異質陣列的內容取用 直接取用異質陣列的cell 取用異值陣列的元素的內部構成單位 一次同時取用或刪除多個元素 異質陣列可以取代以逗點分開的變數列

直接取用異質陣列的cell (1/2) 以下例子先建立一個異質陣列 B,再取用其中第 1 橫列、第 2 直行的元素: >> B = {'James Bond', [1 2;3 4;5 6]; pi, magic(5)} B = 'James Bond' [3x2 double] [ 3.1416] [5x5 double] Hint: magic(n)可製造nxn大小的魔方陣

直接取用異質陣列的cell (2/2) >> F = B{1,2} Result: F = 1 2 3 4 5 6 1 2 3 4 5 6

取用異值陣列的元素的內部構成單位 先用 Content Indexing 的方法,再直接加上一般矩陣的索引法 Ex: G = 5 >> G = B{1,2}(3,1) G = 5

同時取用或刪除多個元素 如上述異質陣列B >> H = B(2,:) %取用異質陣列 B 的第一橫列所有元素 H = [3.1416] [5x5 double] >> B(1,:) = [] %刪除異質陣列 B 的第一橫列所有元素 B =

取代以逗點分開的變數列 Ex: %先建立一個維度為 1×4 的異質陣列 >> F = {[2 3 5], [1 2 3], 'Timmy', 'Annie'}; >> F{1:2} ans = 2 3 5 1 2 3

取代以逗點分開的變數列 上例中, F{1:2} 會指向 「[2 3 5], [1 2 3]」 可將之用於函數的輸入變數列,例如: >> plot(F{1:2}, '-o') Result:

取代以逗點分開的變數列(cont) 同理,亦可將之用於輸出變數列: Ex: >> [F{1:2}] = max(rand(5)) [1x5 double] [1x5 double] %F為一1x2的異質陣列

其他相關指令 改變異質陣列的大小 事先預設(Pre-Allocate)空的異質陣列 測試某一變數是否為異質陣列 將一數值陣列轉換成異質陣列 將一結構陣列的所有欄位值轉換成異質陣列 將異值陣列轉換為結構陣列 將一結構陣列的某一欄位值轉換成異質陣列

改變異質陣列的大小 可使用「:」運算或「reshape」 Ex: B為2x2異質陣列 B = 'James Bond‘ [3x2 double] [ 3.1416] [5x5 double] Result: >> M = B(:) M = 'James Bond' [ 3.1416] [3x2 double] [5x5 double] >> N = reshape(B,1,4) N = 'James Bond' [3.1416] [3x2 double] [5x5 double]

預設空的異質陣列 利用 cell 指令 Ex: >> E = cell(4, 3) % 事先預設一個 4×3 空的異質陣列 Result: E = [] [] []

測試某變數是否為異質陣列 可用iscell 指令 Ex:iscell01.m C = {[1,2,3]; 'This is a test.'}; iscell(C) ans = 1 Hint: 上例中,iscell 的執行結果是傳回值 1,代表變數 A 是一個異質陣列,若傳回值 0,則代表不是異質陣列。

數值陣列轉換成異質陣列 (1/5) num2cell 指令可將一數值陣列轉換成異質陣列, 其使用語法為: C = num2cell(A, dim) 其中 dim 是代表 「不變」的維度,若不指定,則將每個元素視為異質陣列裡面的一個 1×1 矩陣

將數值陣列轉換成異質陣列 (2/5) Ex:num2cell01.m A = [1 2 3;4 5 6]; % 建立一個數值陣列 A C = num2cell(A) % 將數值陣列 A 轉成異質陣列 C C = [1] [2] [3] [4] [5] [6]

將數值陣列轉換成異質陣列 (3/5) 可以將上例數值陣列 A 中的每一直行, 轉成異質陣列 D 的元素 Ex::num2cell02.m A = [1 2 3;4 5 6]; % 建立的一個數值陣列 A D = num2cell(A, 1) % 1 代表「橫列被切割」 D = [2x1 double] [2x1 double] [2x1 double]

將數值陣列轉換成異質陣列 (4/5) 也可以將數值陣列 A 的每一橫列, 轉成異質陣列 E 的元素 Ex:num2cell03.m A = [1 2 3;4 5 6]; % 建立的一個數值陣列 A E = num2cell(A, 2) % 2 代表「直行被切割」 E = [1x3 double]

將數值陣列轉換成異質陣列 (5/5) 若需要更複雜的轉換,可以使用mat2cell指令 Ex: C = mat2cell(X,[1 2],[1 3]) X = 1 2 3 4 5 6 7 8 9 10 11 12 C = [ 1] [1x3 double] [2x1 double] [2x3 double]

將結構陣列轉換成異質陣列 struct2cell 指令可將一結構陣列的所有欄位值轉換成異質陣列。 Ex:struct2cell01.m student.name = 'Tim'; student.age = 8; %student為一struct sCell = struct2cell(student) sCell = 'Tim' [ 8]

將異值陣列轉換為結構陣列 另外有一個 cell2struct 指令 可以將異值陣列轉換為結構陣列 詳細說明請參考本書的下一章「結構陣列」。

將結構陣列的某一欄位值轉換成異質陣列 使用 deal 指令 Ex:deal01.m S = struct('name',{'Tim','Annie'},'age', {8,5}); [sCell{1:length(S)}] = deal(S.name) sCell = 'Tim ' 'Annie'

deal 指令 deal 指令的輸入及輸出引數需有相同個數 如上例中,sCell{1:length(S)} 的作用即是產生以逗點分開的輸出變數列。 善用 deal 指令,可達成事半功倍之效, 以下欲列出 MATLAB 根目錄下所有目錄(不含檔案)

Ex:deal02.m dirInfo = dir(matlabroot); % 列出 MATLAB 的根目錄的各種資訊 n = length(dirInfo); % 檔案及目錄的個數 [fileAndDir{1:n}] = deal(dirInfo.name); % fileAndDir 包含檔案及目錄名稱 dirs = fileAndDir([dirInfo.isdir]) % dirs 包含各目錄名稱

Result dirs = Columns 1 through 10 '. ' '..' 'bin' 'demos' 'extern' 'help' 'ja' 'java' 'notebook' 'rtw‘ Columns 11 through 17 'simulink' 'stateflow' 'sys' 'toolbox' 'uninstall' 'webserver' 'work'

本章指令彙整 指令 功能 cellplot(A) 以圖形的方式顯示異質陣列 A 的內部資料型態 celldisp(A) reshape(A,m,n) 改變異質陣列 A 的維度成 m×n cell(m,n) 預先配置一個維度為 m×n 的空矩陣 iscell(A) 測試變數 A 是否為異質陣列: 傳回值 0,代表不是異質陣列 傳回值 1,代表是異質陣列 num2cell(A, d) 將數值陣列 A 轉成異質陣列,d 表示被切割的維度 struct2cell(A) 將結構陣列 A 的所有欄位名稱值,轉換成異質陣列