當前位置:首頁 » 存儲配置 » 矩陣稀疏存儲的目標

矩陣稀疏存儲的目標

發布時間: 2025-02-21 11:35:18

1. 對稀疏矩陣進行壓縮存儲的目的是什麼

對稀疏矩陣進行壓縮存儲目的是節省存儲空間。

存儲矩陣的一般方法是採用二維數組,其優點是可以隨機地訪問每一個元素,因而能夠較容易地實現矩陣的各種運算。

但對於稀疏矩陣而言,若用二維數組來表示,會重復存儲了很多個0了,浪費空間,而且要花費時間來進行零元素的無效計算。所以必須考慮對稀疏矩陣進行壓縮存儲。



(1)矩陣稀疏存儲的目標擴展閱讀

優點

稀疏矩陣的計算速度更快,因為MATLAB只對非零元素進行操作,這是稀疏矩陣的一個突出的優點。假設矩陣A,B中的矩陣一樣,計算2*A需要一百萬次的浮點運算,而計算2*B只需要2000次浮點運算。

因為MATLAB不能自動創建稀疏矩陣,所以要用特殊的命令來得到稀疏矩陣。算術和邏輯運算都適用於稀疏矩陣。對於一個用二維數組存儲的稀疏矩陣Amn,如果假設存儲每個數組元素需要L個位元組,那麼存儲整個矩陣需要m*n*L個位元組。

2. 對稀疏矩陣壓縮存儲的目的是什麼 A 便於進行矩陣預算 B 便於輸入和輸出C節省存儲空間 D降低運算世間復雜度

對稀疏矩陣壓縮存儲的目的是:C節省存儲空間和D降低預算時間復雜度,如果是單選題,那麼應該選C節省存儲空間。

矩陣中非零元素的個數遠遠小於矩陣元素的總數,並且非零元素的分布沒有規律,則稱該矩陣為稀疏矩陣(sparse matrix);與之相區別的是,如果非零元素的分布存在規律(如上三角矩陣、下三角矩陣、對角矩陣),則稱該矩陣為特殊矩陣。
稀疏矩陣的計算速度更快,因為M AT L A B只對非零元素進行操作,這是稀疏矩陣的一個突出的優點.假設矩陣A,B中的矩陣一樣.計算2*A需要一百萬次的浮點運算,而計算2*B只需要2 0 0 0次浮點運算.因為M AT L A B不能自動創建稀疏矩陣,所以要用特殊的命令來得到稀疏矩陣.
對於一個用二維數組存儲的稀疏矩陣Amn,如果假設存儲每個數組元素需要L個位元組,那麼存儲整個矩陣需要m*n*L個位元組.但是,這些存儲空間的大部分存放的是0元素,從而造成大量的空間浪費.為了節省存儲空間,可以只存儲其中的非0元素.

3. 稀疏矩陣定義以及存儲格式(COO,CSR,CSC)

網路:在矩陣中,若數值為0的元素數目遠遠多於非0元素的數目,並且非0元素分布沒有規律時,則稱該矩陣為稀疏矩陣;與之相反,若非0元素數目佔大多數時,則稱該矩陣為稠密矩陣。定義非零元素的總數比上矩陣所有元素的總數為矩陣的稠密度。 簡單來說,稀疏矩陣就是絕大部分都是0的矩陣 ,只包含很少的非零值.

比如,

上述稀疏矩陣非零元素有9個,26個零值.稀疏性是74%.

稀疏矩陣因為絕大部分都是0元素,如果我們仍然按照普通方式存儲,無疑會 浪費很多空間 ;同時如果進行運算時,0元素對最終結果也沒有幫助, 增加了許多無效計算 . 因此,我們需要設計出新的存儲方式,或者說數據結構來存儲稀疏矩陣.比較常見的有:

對於稀疏矩陣的存儲,為了達到壓縮的目的(節省存儲空間),只存儲非0元素值,但是也要保留非零元素的位置,方便恢復.所以,我們存儲時不僅存儲非零元素值,同時存儲其坐標位置(row,column). 針對這兩者的存儲,會出現不同的設計方案.這里主要介紹COO,CSR和CSC存儲格式.

我們使用三個數組row,column和data分別用來存儲非零元素坐標的row_index,col_index,以及數值.比如:

NNO:The number of nonzero.矩陣非零元素個數. 三個數組的長度都是NNO.data[i]在原稀疏矩陣中的坐標為(row[i],col[i]]).

可以發現,這種存儲方式中,row數組和column數組中有一定的重復元素.我們是否可以針對這個冗餘特性進一步進行壓縮?之後出現CSR,CSC,分別是對row數組和column數組進行了壓縮.

對COO稀疏矩陣存儲格式的三個數組中的row數組進行壓縮.其他兩個數組保持不變;三個數組分別是row_ptr,columns和data.其中columns和data數組長度均為NNO(矩陣的非零元素個數). 如何對COO的row進行壓縮?

row_ptr存儲的是每行的第一個非零元素距離稀疏矩陣第一個元素的偏移位置;

由row_ptr我們可以知道每行非零元素在data中的index范圍.第i行的非零元素為data[row_ptr[i]:row_ptr[i+1]],對data數組的切片,不包含data[row_ptr[i+1]];同時第i行非零元素的col坐標分別為columns[row_ptr[i]:row_ptr[i+1]];對data和columns的訪問相似,index是相同的.

如上圖中,第0行非零元素在data中是data[0:2],就是1,7;列坐標為columns[0:2],就是0,1,第1行非零元素為data[2:4],有兩個元素2和8,列坐標分別為columns[2:4],1和2.

方便進行行操作.

和CSR類似.只不過對列進行壓縮,row和data保持不變.

方便進行列操作.

4. 稀疏矩陣稀疏矩陣的計算機存儲

在計算機存儲中,稀疏矩陣的特性使其在處理大量元素為零的情況時顯得尤為高效。當Matlab將矩陣視為稀疏矩陣時,存儲策略發生了改變。通常,矩陣的存儲僅需關注非零元素,而非全矩陣。具體來說,這種存儲方式採用一個m×3的矩陣,其中第1列存儲行下標,第2列存儲列下標,第3列則是非零元素的值。每個非零元素佔用8個位元組(相當於高斯節),而下標則需要4個位元組。因此,對於一個包含m個非零元素的矩陣,總的內存佔用為16位元組乘以m。


以矩陣A為例,其元素為(1,0,0,0),形成一個1×1的單位矩陣,常規存儲需要8兆位元組(Mb)。然而,如果使用`sparse`命令,我們可以將其表示為一個1×3的矩陣,每行僅包含一個元素的行下標、列下標和值。這樣,存儲這個單位矩陣只需16千位元組(Kb),相比於常規存儲,節省的空間達到了99.8%。這種方法同樣適用於許多具有大量零元素的廣義矩陣,極大地節省了存儲空間。


(4)矩陣稀疏存儲的目標擴展閱讀

如果在矩陣中,多數的元素為0,稱此矩陣為稀疏矩陣(sparse matrix)。

5. 對稀疏矩陣進行壓縮存儲目的是() A.便於進行矩陣運算 B.便於輸入和輸出 C.節省存儲空間 D.降低運

對稀疏矩陣進行壓縮存儲目的是節省存儲空間。

稀疏矩陣的存儲方式:

存儲矩陣的一般方法是採用二維數組,其優點是可以隨機地訪問每一個元素,因而能夠較容易地實現矩陣的各種運算。但對於稀疏矩陣而言,若用二維數組來表示,會重復存儲了很多個0了,浪費空間,而且要花費時間來進行零元素的無效計算。所以必須考慮對稀疏矩陣進行壓縮存儲。

(5)矩陣稀疏存儲的目標擴展閱讀:

最常用的稀疏矩陣存儲格式主要有:三元組(i,j,a(i,j))和CSR(Compressed Sparse Row)。

(1) 三元組(i,j,a(i,j))(也叫COO(Coordinate Format))

三元組(i,j,a(i,j))很簡單,就是使用3個數組,分別存儲全部非零元的行下標(row index)、列下標(column index)和值(value)

(2) CSR存儲(Compressed Sparse Row,壓縮稀疏的行)

CSR是比較標準的一種,也需要三類數據來表達:數值,列號,以及行偏移。數值和列號與COO一致,表示一個元素以及其列號,行偏移表示某一行的第一個元素在values裡面的起始偏移位置。

6. 稀疏矩陣採用壓縮存儲的目的主要是什麼

節省存儲空間。
根據網路查詢,對稀疏矩陣進行壓縮存儲目的是節芹高省存儲空間。存儲矩陣的一般方法是採用二維數組。
矩族哪陣壓縮由於稀疏矩陣中非零元素較少,零元素較多,因此可以採用只存儲非零元素的方法嫌穗尺來進行壓縮存儲。

熱點內容
天龍八部腳本小蘋果 發布:2025-02-22 07:59:19 瀏覽:495
有道詞典java 發布:2025-02-22 07:43:00 瀏覽:854
使命召喚手游外掛腳本防封號 發布:2025-02-22 07:40:49 瀏覽:961
java源文件擴展名 發布:2025-02-22 07:39:33 瀏覽:450
miui版本Android版本 發布:2025-02-22 07:38:51 瀏覽:779
鄰區腳本 發布:2025-02-22 07:01:04 瀏覽:961
安卓手機怎麼校正soc 發布:2025-02-22 06:36:58 瀏覽:508
商城總控源碼 發布:2025-02-22 06:36:14 瀏覽:505
ipad怎麼玩安卓區游戲 發布:2025-02-22 06:35:29 瀏覽:347
程序注釋和編譯功能 發布:2025-02-22 06:34:08 瀏覽:813