Matlab 12 稀疏矩陣

2021-10-03 21:31:24 字數 1833 閱讀 5591

二、稀疏儲存方式的產生

3.帶狀稀疏矩陣的稀疏儲存方式

4.單位矩陣的稀疏儲存方式

矩陣的每乙個元素都進行儲存

只儲存非0元素的值及其位置,即行號與列號

採用稀疏儲存方式時,矩陣元素的儲存順序並沒改變,也是按列的順序儲存。

a=sparse(s):將矩陣s轉化為稀疏儲存方式的矩陣a

s=full(a):將矩陣a轉化為完全儲存方式的矩陣s

①sparse函式
sparse(m,n):生成 m×n 全零稀疏矩陣。

sparse(i,j,v):根據 i、j 和 v 三個向量生成稀疏矩陣 s,v為稀疏矩陣中的非零元素,i與j的對應位置分別為v中對應為的非零元素在稀疏矩陣中的行下標與列下標。

②spconvert函式
b=spconvert(a):a為乙個m3或m4矩陣,m為非零元素的個數,a的每一行用來儲存乙個非零元素的各種資訊:

a(i,1):第i個非零元素所在的行

a(i,2):第i個非零元素所在的列

a(i,3):第i個非零元素的實部

a(i,4):第i個非零元素的虛部

若非零元素都為實數則矩陣a無需第4列,為m*3矩陣

例:

帶狀稀疏矩陣:所有非零元素都集中在對角線的位置

①從帶狀稀疏矩陣中提取對角線上元素

b = spdiags(a):從矩陣a中提取所有非零對角線元素賦給矩陣b,b 是乙個其列為 a 的 p 條非零對角線的 min(m,n)×p 矩陣

[b,d] = spdiags(a):從矩陣a中提取所有非零對角線元素賦給b,d指示所提取出的對角線的位置

b = spdiags(a,d):從a中提取 d 指定的對角線。

需要注意的是矩陣b:

獲取在主對角線以下的對角線上的元素存在矩陣b的一列之中,在這一列從上到下,先存對角線上元素,存完之後再補0;

獲取在主對角線以上的對角線上的元素存在矩陣b的一列之中,在這一列從下到上,先存對角線上元素,存完之後再補0,

例:

例:

②建立帶狀稀疏矩陣

a=spdiags(b,d,m,n):通過獲取 b 的列並沿 d 指定的對角線放置它們,來建立乙個 m×n 稀疏矩陣(在m*n矩陣中,d指定的對角線上元素個數不能超過b的列數)。

a=spdiags(b,d,a):b、d含義同上,引數矩陣a的含義是只修改a的指定對角線上的元素,其他元素不變

需要注意的是矩陣b:

要將b的某一列元素存到矩陣a主對角線以下的對角線時,將這一列從上到下的元素逐個存入指定對角線,直到這條對角線存滿。

要將b的某一列元素存到矩陣a主對角線以上的對角線時,設對角線的位置為k,將這一列從第k個元素到下的元素逐個存入指定對角線,直到這條對角線存滿。

例:

speye(m,n):返回乙個m*n的稀疏儲存的單位矩陣

最後的一點說明:當參與元素的矩陣不全是稀疏儲存方式的矩陣時,結果是完全儲存形式。

MATLAB 1 2數值資料

2.設定數值資料輸出格式 3.常用數學函式 3.函式應用舉例 整型 浮點型 復型 x int8 129 有符號8位整型資料最大值為127,只能轉換為最大值 x int8 127 x uint8 129 無符號8位整型資料最大值為255 x uint8 129單精度型,記憶體中佔4個位元組 雙精度型,...

Matlab稀疏矩陣

matlab的矩陣有兩種儲存方式,完全儲存方式和稀疏儲存方式 1.完全儲存方式 將矩陣的全部元素按列儲存,矩陣中的全部零元素也儲存到矩陣中。2.稀疏儲存方式 僅儲存矩陣所有的非零元素的值及其位置,即行號和列號,顯然這對於具有大量零元素的稀疏矩陣來說是十分有效的。設1 0 0 0 a 0 5 0 0 ...

matlab稀疏矩陣建立及例項

一般有兩個命令可以用來建立稀疏矩陣 1.sparse 較常用 2.spdiags 主要用於非零元素都是對角線元素的情況 sparse。使用格式如下 a sparse i,j,s,m,n,nzmax 其實matlab函式sparse的文件中說的比較明白 s sparse i,j,s,m,n,nzmax...