日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

2.5 matlab稀疏矩阵

發(fā)布時(shí)間:2025/4/16 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.5 matlab稀疏矩阵 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

稀疏矩陣:是指零元素的個(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。

>> a = eye(5)a =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1>> a1 = sparse(a) %按照稀疏矩陣存儲(chǔ)方式a1 =(1,1) 1(2,2) 1(3,3) 1(4,4) 1(5,5) 1>> a2 = full(a) %按照完全存儲(chǔ)方式a2 =1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1>> whos %查看變量,可知稀疏矩陣存儲(chǔ)方式所占內(nèi)存遠(yuǎn)小于完全存儲(chǔ)方式所占的內(nèi)存空間Name Size Bytes Class Attributesa 5x5 200 double a1 5x5 128 double sparse a2 5x5 200 double

(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)。

>> a = sparse([1,2,3],[2,1,8],[3,2,-2]) %直接建立稀疏矩陣a =(2,1) 2(1,2) 3(3,8) -2>> a1 = full(a)a1 =0 3 0 0 0 0 0 02 0 0 0 0 0 0 00 0 0 0 0 0 0 -2>> whosName Size Bytes Class Attributesa 3x8 120 double sparse a1 3x8 192 double

使用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列。

>> a = [1,2,3;2,1,8;3,2,-2] %描述的是一個(gè)稀疏矩陣a =1 2 32 1 83 2 -2>> b = spconvert(a) %轉(zhuǎn)換成為一個(gè)稀疏存儲(chǔ)矩陣b =(2,1) 8(1,2) 3(3,2) -2>> whosName Size Bytes Class Attributesa 3x3 72 double b 3x2 72 double sparse

(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ì)角線的位置。

>> a = [11 0 0 12 0 0 ;0 21 0 0 22 0;0 0 31 0 0 32;41 0 0 42 0 0 ;0 51 0 0 52 0]a =11 0 0 12 0 00 21 0 0 22 00 0 31 0 0 3241 0 0 42 0 00 51 0 0 52 0>> [b,d] = spdiags(a) %矩陣b為全部非零對(duì)角線元素,向量d為非零對(duì)角線的位置b =0 11 120 21 220 31 3241 42 051 52 0d =-303>> a = spdiags(b,d,5,6) %5,6為原矩陣的行數(shù)和列數(shù)a =(1,1) 11(4,1) 41(2,2) 21(5,2) 51(3,3) 31(1,4) 12(4,4) 42(2,5) 22(5,5) 52(3,6) 32

(4)單位矩陣的稀疏存儲(chǔ)
speye(m,n)
返回一個(gè)m x n的稀疏存儲(chǔ)單位矩陣。

>> a = speye(4)a =(1,1) 1(2,2) 1(3,3) 1(4,4) 1

3、稀疏矩陣的應(yīng)用實(shí)例

>> %輸入系數(shù)矩陣 kf1 = [1;1;2;1;0]; %注意分號(hào) k0 = [2;4;6;6;1]; k1 = [0;3;1;4;2]; B = [kf1,k0,k1]; %非零對(duì)角線元素矩陣 d = [-1;0;1]; %產(chǎn)生非零對(duì)角線元素所在位置向量 A = spdiags(B,d,5,5); %產(chǎn)生稀疏矩陣的系數(shù)矩陣 f = [0;3;2;1;5]; %方程右邊的常數(shù)向量 x = A\fx =-0.16670.11112.7222-3.61118.6111

注意,當(dāng)參與運(yùn)算的數(shù)據(jù)對(duì)象不全是稀疏存儲(chǔ)矩陣時(shí),所得結(jié)果是完全存儲(chǔ)形式。

總結(jié)

以上是生活随笔為你收集整理的2.5 matlab稀疏矩阵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。