




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB程式設計進階篇稀疏矩陣,張智星(RogerJang)/jang清大資工系多媒體檢索實驗室,5-1稀疏矩陣的建立,根據元素的值,MATLAB的矩陣可分為兩種:完全矩陣(FullMatrix)每一個元素都存成double的資料型態,佔用8個Byte一個mn的完全矩陣,所佔用的記憶體空間是8mn個Byte稀疏矩陣(SparseMatrix)大部分的元素都是0只須儲存非零元素的位置及其元素值優點節省記憶體儲存空間節省某一些不必要的運算,稀疏矩陣範例-1(I),sparse指令可將一個完全矩陣轉換成稀疏矩陣範例5-1:sparse01.mS=(1,1)2(3,2)4(2,4)1可看出,S是一個稀疏矩陣,MATLAB只儲存其各個非零元素的位置(即其二維下標(1,1)、(3,2)、(2,4))和元素值(2、4、1),clearall;%清除所有的變數A=2000;0001;0400;%完全矩陣S=sparse(A)%將完全矩陣A轉換成稀疏矩陣S,稀疏矩陣範例-1(II),比較矩陣A和S所佔用的記憶體大小:whosNameSizeBytesClassAttributesA3x496doubleS3x488doublesparse看出稀疏矩陣S佔用記憶體的位元組數目(88Bytes)比矩陣A(佔用96Bytes)還要小。,稀疏矩陣範例-2(I),使用sparse指令來直接產生稀疏矩陣S=sparse(i,j,s,m,n);i是列索引j是行索引s是非零元素所形成的向量m是s的列維度n是s的行維度i、j、s都是長度相同的向量s(k)的二維下標即是i(k)及j(k),稀疏矩陣範例-2(II),S=sparse(132,124,241,3,4)S=(1,1)2(3,2)4(2,4)1也可以在sparse指令加上第六種輸入變數,代表最多可以容納的非零元素個素,使得您可以後續再加入非零元素,而不必改變整個稀疏矩陣的結構,稀疏矩陣範例-3(I),指令spdiags,可由對角線元素來建構一個稀疏矩陣S=spdiags(D,p,m,n)D是每一個直行代表矩陣的對角線向量p代表對角線的位置(0代表主對角線,-1代表向下位移一單位的次對角線,1代表向上位移一單位的次對角線)m代表矩陣的列維度n代表矩陣的行維度,稀疏矩陣範例-3(II),範例5-2:sparse02.mS=(1,1)2(2,1)9(2,2)4(3,2)9(1,3)1(3,3)1(4,3)4,D=329;249;114;d=20-1;S=spdiags(D,d,4,3),稀疏矩陣範例-3(III),以完全矩陣來顯示,可得:A=full(S)A=201940091004可看出矩陣A的三個非零對角線向量分別是D的三個行向量。(在D的第一個行向量中,只用到最後一個元素1。),提示:D=329249114d=20-1,稀疏矩陣範例-4(I),一般的load及save指令,也可以處理稀疏矩陣,並儲存於二進制的MAT檔案spconvert指令,可將一個m3的矩陣轉換成稀疏矩陣第一直行代表列索引第二直行代表行索引第三直行則是非零的元素值檔案spmat.dat的內容可顯示如下:typespmat.dat112324241835,稀疏矩陣範例-4(II),建構此稀疏矩陣範例5-3:spconvert01.mS=(1,1)2(3,2)4(8,3)5(2,4)1,loadspmat.datS=spconvert(spmat),5-2稀疏矩陣的儲存空間,一個只包含實數的稀疏矩陣,假設其維度為mn,含有nnz個非零元素,MATLAB動用了三個內部陣列來儲存此稀疏矩陣的相關資訊:第一個陣列:以double方式儲存了所有的非零元素,其長度為nnz,使用的空間為大小8*nnz位元組(Bytes)。第二個陣列:以整數方式儲存了每個元素的列索引,其長度為nnz,使用的空間大小為4*nnz位元組(Bytes)。第三個陣列:以整數方式儲存了每個直行的起始指標,其長度為n,使用空間大小為4*n位元組(Bytes)。注意:上述儲存方式僅是用於MATLAB第六版!,稀疏矩陣的儲存空間,整個稀疏矩陣佔用的空間大小為8*nnz+4*nnz+4*n+4=12*nnz+4*n+4,多出來的4個bytes是用來儲存其他經常性資訊範例5-4:memorySize.mNameSizeBytesClasswest0479479x47924564doublearray(sparse)Grandtotalis1887elementsusing24564bytes,clearallloadwest0479.matwhos,稀疏矩陣的儲存空間,驗證上述公式12*(nnz(west0479)+4*size(west0479,2)+4ans=24564nnz(west0479)可傳回稀疏矩陣west0479的非零元素個數,其他類似的指令還有nonzeros(傳回一個包含所有非零元素的行向量)及nzmax(傳回最大的非零元素個數),提示,在一個稀疏矩陣中,將一個非零元素設定成零時,MATLAB並不會自動釋放記憶體空間,換包話說,nnz會隨著非零元素的減少而減少,但nzmax並不會隨著改變但是多加一個非零元素時,若nnz已大於nzmax時,nzmax會隨之增大(即MATLAB會自動配置記憶體)以儲存新加的元素,5-3稀疏矩陣的觀看與圖示,spy指令可用於觀看稀疏矩陣的非零元素分佈情況範例5-5:spy01.m,loadwest0479.mat%載入二進位制檔案west0479.matspy(west0479)%觀看稀疏矩陣的非零元素分佈情況,稀疏矩陣的觀看與圖示,矩陣west0479的維度是479*479,但是只包含1887個非零元素,因此此矩陣的密度只有1887/(479*479)=0.0082,稀疏矩陣的觀看與圖示,稀疏矩陣特別適用於表示一個無向圖(UndirectedGraph)的鄰近矩陣(AdjacencyMatrix),簡單地說,若某圖的第i和第j個節點有直線連接,則其相對應的鄰近矩陣在第i列、第j行的元素值為1,其他元素值則為零,稀疏矩陣的觀看與圖示,稀疏矩陣特別適用於表示一個無向圖(UndirectedGraph)的鄰近矩陣(AdjacencyMatrix)若某圖的第i和第j個節點有直線連接,則其相對應的鄰近矩陣在第i列、第j行的元素值為1,其他元素值則為零為節省空間,僅用上三角或是下三角矩陣,稀疏矩陣的觀看與圖示,對應的鄰近矩陣可表示成:A=spconvert(121;231;241;341;351;561;461);full(A)ans=010000001100000110000001000001,稀疏矩陣的觀看與圖示,假設這6個節點的座標如下:xy=01;12;10;20;22;31;%每個列向量是一組座標可用gplot指令來畫出上述的無向圖:範例5-6:gplot01.m其中-o代表以實線(-)及圓圈(o)來作圖,A=spconvert(121;231;241;321;341;351;421;431;461;531;561;641;651);xy=01;12;10;20;22;31;%每一個列向量是一組(x,y)座標gplot(A,xy,-o)%畫出無向圖(UndirectedGraph),稀疏矩陣無向圖,稀疏矩陣有趣的例子-1(I),Bucky球,此圖包含了60個三度空間中的點,每一點和他的三個鄰近點都是等距離,可用bucky指令來產生這些點的鄰近矩陣,並用gplot來顯示圖形範例5-7:gplot02.m,A,xy=bucky;%A為鄰近矩陣,xy為座標gplot(A,xy,-o);%畫出無向圖(UndirectedGraph)axisequal%設定x軸和y軸的刻度一樣),稀疏矩陣有趣的例子-1(II),畫出抽象圖形(I),Treeplot指令來畫出一棵電腦圖學中的樹範例5-8:treePlot01.m,nodes=0122444188101011111111;treeplot(nodes);,畫出抽象圖形(II),使用nodes向量來代表這一棵樹,其中node(1)=0則代表第一個節點是此樹的根節點(Root),而node(i)=j代表第i個節點的父親是第j個節點,例如node(5)=4代表第5個節點的父親是第4個節點,依此類推,稀疏矩陣有趣的例子-2,是由NASA(美國太空總署)所主導的計畫,其中包含計算流過機翼的氣流所造成的作用力,由於必須進行偏微分方程的數值運算,所以必須對二維空間進行三角化切割,其鄰近矩陣即為一個稀疏矩陣,您可在MATLAB下執行airfoil指令即可產生相關圖形,相關說明則記載於airfoil.m,可經由typeairfoil.m來檢視之。,5-4稀疏矩陣的運算,MATLAB針對完全矩陣設計的運算與函式,也都適用於稀疏矩陣,而且輸出也是大部分以稀疏矩陣的方式來表示若計算過程包含稀疏及完全矩陣,則計算結果的表示方式就依情況而變,其規則可見
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏三支一扶考试真题2024
- 蚌埠淮上区区属国有企业招聘考试真题2024
- 动静脉内瘘的清洁护理
- 2025至2030中国养殖行业发展趋势分析与未来投资战略咨询研究报告
- 指纹课件制作背景
- 2025至2030中国下水道爬行相机行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国一氧化碳燃烧室行业发展趋势分析与未来投资战略咨询研究报告
- 妇幼保健院健康教育汇报
- 中科大城市绿化与城市生态理论与技术授课计划
- 2025至2030部门图片存档和通信系统(PACS)行业产业运行态势及投资规划深度研究报告
- 上海金山区属国有企业招聘笔试真题2024
- 2025至2030中国生石灰行业市场深度调研及发展趋势与投资方向报告
- 2024年 绍兴市交通控股集团公司招聘考试笔试真题试题含答案
- 维保人员培训管理制度
- 超限模板及高支模安全专项施工方案(论证后)
- 2025年新高考1卷(新课标Ⅰ卷)英语试卷
- LY/T 2252-2014碳汇造林技术规程
- 生活饮用水卫生标准GB5749-2006
- 过渡金属能级图数据库2
- GB-T-12137-2015-气瓶气密性试验方法
- 战锅策火锅店项目策划书
评论
0/150
提交评论