- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB 程式設計多維陣列 張智星 (Roger Jang) jang@ /jang 清大資工系 多媒體檢索實驗室 11-1 多維陣列的定義 在 MATLAB 的資料型態中: 一維陣列稱為向量(Vectors) 二維陣列稱為矩陣(Matrices) 維度(Dimensions)超過 1 的陣列則均可視為「多維陣列」(Multidimesional Arrays,簡稱 N-D Arrays)。 二維陣列 (I) 二維陣列又簡稱矩陣,具有兩個維度 橫列(Row) 直行(Column) (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) 直行 橫列 二維陣列 (II) 二維陣列可對應至一個 X-Y 二維平面座標,圖示如下: Y(行) X(列) 三維陣列 (I) 將兩個矩陣疊在一起,就形成第三個維度,此第三個維度可稱為「頁」(Page),圖示如下: (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,4) (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) 頁 行 頁 列 三維陣列 (II) 三維陣列可對應至一個 X - Y - Z 三維立體座標,圖示如下: Z(頁) Y(行) X(列) 三維陣列 (III) 三維陣列定址,可以 (列,行,頁) 定之。 以維度為 3×4×2 的三維陣列為例,其定址方式可圖示如下: 陣列 A 是三維陣列,其中 A(:,:,1)代表第一頁的二維陣列,A(:,:,2)代表第二頁的二維陣列。 四維陣列 四維陣列的第四個維度可視為「箱」(Box),而每個箱是由一個三維陣列所組成,其定址方式為 (列,行,頁,箱)。 例如:一個 2×2×3×5 的四維陣列,可表示成 5 個箱,每個箱都由一個 2×2×3 的三維陣列所組成,圖示如下: 依此可類推至 n 維陣列,n 為任意自然數。 11-2 多維陣列的建立 欲建立一個簡單的多維陣列,可直接由 MATLAB 指令視窗內輸入 範例11-1:mDim01.m A = [1 0 2 5; 4 1 8 7; 3 2 6 3]; A(:, :, 2) = [3 5 4 1; 2 6 2 1; 4 2 3 0] A(:,:,1) = 1 0 2 5 4 1 8 7 3 2 6 3 A(:,:,2) = 3 5 4 1 2 6 2 1 4 2 3 0 多維陣列直接設定 範例11-2 (I) 上例是先建立一個二維陣列 A ,再輸入第二頁的二維陣列 A(:,:,2) ,如此逐頁輸入二維陣列的內容,即可建立三維陣列。 如果直接設定某一個新頁的一個元素值,此時MATLAB 會將此頁其他未指定之元素直接設定為 0 ,範例如下: 多維陣列直接設定 範例11-2 (II) 範例11-2:mDim02.m A = [1 0 2 5; 4 1 8 7; 3 2 6 3]; A(:, :, 2) = [3 5 4 1; 2 6 2 1; 4 2 3 0]; A(2, 1, 3) = 5 A(:,:,1) = 1 0 2 5 4 1 8 7 3 2 6 3 A(:,:,2) = 3 5 4 1 2 6 2 1 4 2 3 0 A(:,:,3) = 0 0 0 0 5 0 0 0 0 0 0 0 純量展開功能(Scalar Expansion) (I) MATLAB 第五版新增純量展開 (Scalar Expansion) 功能,直接設定一個純量給多維陣列的一頁。 承接上述範例,若要將陣列 A 的第二頁所有元素設為 7,可輸入如下: 純量展開功能(Scalar Expansion) (II) A(:,:,2) = 7 A(:,:,1) = 1 0 2 5 4 1 8 7 3 2 6
文档评论(0)