2.5 matlab稀疏矩阵
稀疏矩陣:是指零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)多于非零元素的個(gè)數(shù)的矩陣
1、矩陣的存儲(chǔ)方式
(1)完全存儲(chǔ)方式
(2)稀疏存儲(chǔ)方式
稀疏存儲(chǔ)方式只存儲(chǔ)矩陣的非零元素的值及其位置,即行號(hào)和列號(hào)。
注意,采用稀疏存儲(chǔ)方式時(shí),矩陣元素的存儲(chǔ)順序并沒(méi)有改變,也是按列的順序進(jìn)行存儲(chǔ)。
2、稀疏存儲(chǔ)方式的產(chǎn)生
(1)完全存儲(chǔ)方式與稀疏存儲(chǔ)方式之間的轉(zhuǎn)化
①A=sparse(S):將矩陣S轉(zhuǎn)化為稀疏存儲(chǔ)方式的矩陣A。
②S=full(A):將矩陣A轉(zhuǎn)化為完全存儲(chǔ)方式的矩陣S。
(2)直接建立稀疏存儲(chǔ)矩陣
sparse函數(shù)的其他調(diào)用格式:
①sparse(m,n):
生成一個(gè)mx n的所有元素都是零的稀疏矩陣。
②sparse(u,v,S):
其中u、v、S是3個(gè)等長(zhǎng)的向量。S是要建立的稀疏存儲(chǔ)矩陣的非零元素u(i)、v(i)分別是S(i)的行和列下標(biāo)。
使用spconvert函數(shù)直接建立稀疏存儲(chǔ)矩陣,其調(diào)用格式為:
B=spconvert(A)
A為一個(gè)m×3或mx4的矩陣,其每行表示一個(gè)非零元素,m是非零元素的個(gè)數(shù)。
①A(i,1)表示第i個(gè)非零元素所在的行。
②A(i,2)表示第i個(gè)非零元素所在的列。
③A(i,3)表示第i個(gè)非零元素值的實(shí)部。
④A(i,4)表示第i個(gè)非零元素值的虛部。
若矩陣的全部元素都是實(shí)數(shù),則無(wú)須第4列。
(3)帶狀稀疏矩陣的稀疏存儲(chǔ)
稀疏矩陣有兩種基本類(lèi)型:無(wú)規(guī)則結(jié)構(gòu)的稀疏矩陣與有規(guī)則結(jié)構(gòu)的稀疏矩陣。
帶狀稀疏矩陣是指所有非零元素集中在對(duì)角線上的矩陣。
①[B,d]=spdiags(A)
從帶狀稀疏矩陣A中提取全部非零對(duì)角線元素賦給矩陣B及其這些非零對(duì)角線的位置向量d。
②A=spdiags(B,d,m,n)
產(chǎn)生帶狀稀疏矩陣的稀疏存儲(chǔ)矩陣A,其中m、n為原帶狀稀疏矩陣的行數(shù)與列數(shù),矩陣B的弟i列即為原帶狀稀疏矩陣的第i條非零對(duì)角線,向量d為原帶狀稀疏矩陣所有非零對(duì)角線的位置。
(4)單位矩陣的稀疏存儲(chǔ)
speye(m,n)
返回一個(gè)m x n的稀疏存儲(chǔ)單位矩陣。
3、稀疏矩陣的應(yīng)用實(shí)例
注意,當(dāng)參與運(yùn)算的數(shù)據(jù)對(duì)象不全是稀疏存儲(chǔ)矩陣時(shí),所得結(jié)果是完全存儲(chǔ)形式。
總結(jié)
以上是生活随笔為你收集整理的2.5 matlab稀疏矩阵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2.4 matlab矩阵的特征值和特征向
- 下一篇: matlab程序和程序文件