欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MATLAB程式设计多维阵列.ppt

    • 资源ID:5439237       资源大小:244.99KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MATLAB程式设计多维阵列.ppt

    MATLAB 程式設計多維陣列,張智星(Roger Jang)http:/mirlab.org/jang台大資工系 多媒體檢索實驗室,11-1 多維陣列的定義,在 MATLAB 的資料型態中:一維陣列稱為向量(Vectors)二維陣列稱為矩陣(Matrices)維度(Dimensions)超過 1 的陣列則均可視為多維陣列(Multidimesional Arrays,簡稱 N-D Arrays)。,二維陣列(I),二維陣列又簡稱矩陣,具有兩個維度 橫列(Row)直行(Column),直行,橫列,二維陣列(II),二維陣列可對應至一個 X-Y 二維平面座標,圖示如下:,Y(行),X(列),三維陣列(I),將兩個矩陣疊在一起,就形成第三個維度,此第三個維度可稱為頁(Page),圖示如下:,頁,行,頁,列,三維陣列(II),三維陣列可對應至一個 X-Y-Z 三維立體座標,圖示如下:,Z(頁),Y(行),X(列),三維陣列(III),三維陣列定址,可以(列,行,頁)定之。以維度為 342 的三維陣列為例,其定址方式可圖示如下:陣列 A 是三維陣列,其中 A(:,:,1)代表第一頁的二維陣列,A(:,:,2)代表第二頁的二維陣列。,四維陣列,四維陣列的第四個維度可視為箱(Box),而每個箱是由一個三維陣列所組成,其定址方式為(列,行,頁,箱)。例如:一個 2235 的四維陣列,可表示成 5 個箱,每個箱都由一個 223 的三維陣列所組成,圖示如下:依此可類推至 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 3A(:,:,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 3A(:,:,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 3A(:,:,2)=7 7 7 7 7 7 7 7 7 7 7 7A(:,:,3)=0 0 0 0 5 0 0 00 0 0 0,垂直並排多維陣列範例11-3(I),對於較複雜的多維陣列,可用 cat 指令來建立,其功能為並排數個陣列,並可指定並排時所用的維度其指令格式如下:Z=cat(dim,A,B,C)A、B、C 為陣列dim 是將 A、B、C 合併時所用到的維度。(亦即在合併後,此維度的大小會改變。),垂直並排多維陣列範例11-3(II),欲將矩陣 A 與 B 上下(垂直)並排範例11-3:cat01.m,A=1 2;3 4;B=1 0;0 1;Z=cat(1,A,B)%數字 1 表示將陣列 A 與 B 上下垂直並排,Z=1 2 3 4 1 0 0 1,水平並排多維陣列範例11-4,欲將陣列 A 與 B 左右(水平)並排範例11-4:cat02.m,A=1 2;3 4;B=1 0;0 1;Z=cat(2,A,B)%數字 2 表示將陣列 A 與 B 左右水平並排,Z=1 2 1 0 3 4 0 1,陣列堆疊 範例11-5,將陣列 A 與 B 疊起來,得到一個三維陣列範例11-5:cat03.m,A=1 2;3 4;B=1 0;0 1;Z=cat(3,A,B)%數字3表示將陣列 A 與 B 重疊排成三維陣列,Z(:,:,1)=1 2 3 4Z(:,:,2)=1 0 0 1,cat自動補齊維度 範例11-6,所設定的 dim 值比陣列 A、B、C的各自原先的維度數(Dimensionality)還要超出 2 或更多,MATLAB 會自動補上大小為 1 的維度此時陣列 Z 的維度變為 2212 範例11-6:cat04.m,A=1 2;3 4;B=1 0;0 1;Z=cat(4,A,B)%數字 4 表示將陣列 A 與 B 放在相鄰的兩箱,Z(:,:,1,1)=1 3 2 4,Z(:,:,1,2)=1 2 1 1,亂數陣列(I),MATLAB 可產生特殊用途的多維陣列 要產生一個維度是 235 的亂數陣列,可用 rand 指令,A=rand(2,3,5)A(:,:,1)=0.3412 0.7271 0.8385 0.5341 0.3093 0.5681A(:,:,2)=0.3704 0.5466 0.6946 0.7027 0.4449 0.6213,亂數陣列(II),類似的指令,詳見本書第九章矩陣的處理與運算的第二節特殊用途矩陣,A(:,:,3)=0.7948 0.5226 0.1730 0.9568 0.8801 0.9797A(:,:,4)=0.2714 0.8757 0.1365 0.2523 0.7373 0.0118A(:,:,5)=0.8939 0.2987 0.2844 0.1991 0.6614 0.4692,11-3 多維陣列的數學運算,許多用於向量和矩陣的數學運算,例如 sum、max、min、mean 等,也都可以用在多維陣列。在使用這些指令時,我們必須指定這些指令的操作是在哪一個維度。,多維陣列運算 維度指定範例11-7(I),範例11-7:sum01.m,A=1 1 1 1;2 2 2 2;3 3 3 3;B=0 0 0 0;1 1 1 1;1 2 3 4;Z=cat(3,A,B);%將矩陣 A,B 疊成一個三維陣列S=sum(Z,1)%根據第一維度來對元素進行相加size(S),S(:,:,1)=6 6 6 6S(:,:,2)=2 3 4 5ans=1 4 2,多維陣列運算 維度指定範例11-7(II),上述範例,矩陣 Z 的大小是 342,sum(Z,1)是根據第一個維度來進行相加,因此第一個維度值就會被被壓成是 1,因此 size(S)所傳回的值是 1,4,2,代表矩陣 S 的大小是 142sum(Z)的預設相加維度即是 1,因此 sum(Z)和 sum(Z,1)所得到的結果是一樣的。,多維陣列運算 維度指定範例11-8(I),對第二個維度進行相加,可見下列範例。範例11-8:sum02.m,A=1 1 1 1;2 2 2 2;3 3 3 3;B=0 0 0 0;1 1 1 1;1 2 3 4;Z=cat(3,A,B);%將矩陣 A,B 疊成一個三維陣列S=sum(Z,2)%根據第二維度來對元素進行相加size(S),S(:,:,1)=4 8 12,多維陣列運算 維度指定範例11-8(II),在上述範例中,sum(Z,2)是對第二個維度進行相加運算,因此所傳回的矩陣 S 的維度是 312。sum(z,3)的結果請依此類推。,S(:,:,2)=0 4 10ans=3 1 2,Quiz,An array Z can be created by the following statements:What are the sizes of the returned arrays of the following statements?sum(Z,1)3 4 2 1 4 2sum(Z,2)3 4 2 3 1 2sum(Z,3)3 4 2 3 4 1 or 3 4,A=1 1 1 1;2 2 2 2;3 3 3 3;B=0 0 0 0;1 1 1 1;1 2 3 4;Z=cat(3,A,B);,sum的累加範例11-9(I),執行sum(Z)時,如果預設要相加的維度只有單一維度,那麼 sum 指令會對下一個維度進行相加的動作,sum(sum(Z)將會得到三維陣列 Z 的每一頁的總和。sum(sum(sum(Z)或 sum(Z(:)可得到三維陣列 Z 的總和。,sum的累加範例11-9(II),範例11-9:sumSum01.m與 sum 類似的指令還有 max、min、mean、median、mode、std、diff、sort 等,可以參考第九章的第三小節矩陣的數學運算。,A=1 1 1 1;2 2 2 2;3 3 3 3;B=0 0 0 0;1 1 1 1;1 2 3 4;Z=cat(3,A,B);%將矩陣 A,B 疊成一個三維陣列S=sum(sum(Z),S(:,:,1)=24S(:,:,2)=14,

    注意事项

    本文(MATLAB程式设计多维阵列.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开