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

稀疏矩陣存儲

發布時間: 2022-01-11 15:52:42

1. 稀疏矩陣是怎樣存儲

/*
稀疏矩陣的三元組順序表存儲表示
*/
# define MAX_SIZE 100//非零元個數的最大值
struct Triple
{
int i,j;//行下標,列下標
ElemType e;//非零元素值
};
struct TSMatrix
{
Triple data[MAX_SIZE+1];//非零元三元組表,data[0]未用
int mu,nu,tu;//矩陣的行數、列數和非零元個數
};

2. 稀疏矩陣的存儲空間

一個稀疏矩陣中有許多元素等於零,這便於矩陣的計算和保存.如果Matlab把一個矩陣當作稀疏矩陣,那麼只需在m×3的矩陣中存儲m個非零項.第1列是行下標,第2列是列下標,第3列是非零元素值,不必保存零元素.如果存儲一個浮點數要8個位元組,存儲每個下標要4個位元組,那麼整個矩陣在內存中存儲需要1 6×m個位元組.
A = e y e ( 1 0 0 0 ) ;
得到一個1 0 0 0×1 0 0 0的單位矩陣,存儲它需要8 MB空間.如果使用命令:
B = s p e y e ( 1 0 0 0 ) ;
用一個1 0 0 0×3的矩陣來代表,每行包含有一個行下標,列下標和元素本身.只需1 6 K B的空間就可以存儲1 0 0 0×1 0 0 0的單位矩陣,它只需要滿單位矩陣的0 . 2 %存儲空間.對於許多的廣義矩陣也可這樣來作.

3. 對稀疏矩陣壓縮存儲的目的是什麼 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元素.

4. 如何存儲和計算超大規模稀疏矩陣

代碼如下:
#生成單位矩陣,用普通矩陣無法創建,所以用sparseMatrix來創建。
num_samples=180000
rownumber=c(1:num_samples)
colnumber=c(1:num_samples)
value=c(rep(1,each=num_samples))
M=sparseMatrix(rownumber,colnumber,x=value)
#給單位矩陣賦值,全部賦值完成後是一個4*50*180000個數值的對稱稀疏矩陣。
for(i in 1:num_samples){
w=W #有50個浮點型數值。
n=neighbors #有50個整型數值。
M=M-t(w)
M=M-w
M=M+w%*%t(w)
}

5. 稀疏矩陣的壓縮存儲只需要存儲什麼

非零元素。

對於一個用二維數組存儲的稀疏矩陣Amn,如果假設存儲每個數組元素需要L個位元組,那麼存儲整個矩陣需要m*n*L個位元組。但是,這些存儲空間的大部分存放的是0元素,從而造成大量的空間浪費。為了節省存儲空間,可以只存儲其中的非0元素。

(5)稀疏矩陣存儲擴展閱讀

稀疏矩陣演算法的最大特點是通過只存儲和處理非零元素從而大幅度降低存儲空間需求以及計算復雜度,代價則是必須使用專門的稀疏矩陣壓縮存儲數據結構。稀疏矩陣演算法是典型的不規則演算法,計算訪存比很低,並且計算過程中的訪存軌跡與稀疏矩陣的稀疏結構相關。

6. 特殊矩陣和稀疏矩陣哪一種採用壓縮存儲會失去隨機存取的功能為什麼

稀疏矩陣壓縮存儲後,必會失去隨機存取功能.
稀疏矩陣在採用壓縮存儲後將會失去隨機存儲的功能.因為在這種矩陣中,非零元素的分布是沒有規律的,為了壓縮存儲,就將每一個非零元素的值和它所在的行、列號做為一個結點存放在一起,這樣的結點組成的線性表中叫三元組表,它已不是簡單的向量,所以無法用下標直接存取矩陣中的元素.

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

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

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

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



(7)稀疏矩陣存儲擴展閱讀

優點

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

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

8. 數組的應用,稀疏矩陣如何存儲要寫出C++程序代碼…謝謝!

#include <iostream>
#include <string>
using namespace std;
void main()
{
int student_age[3][2] = {19 ,20 ,19 ,21 ,22 ,20};//2維數組就相當於一個簡單的矩陣 ,用此矩陣來存儲 學生的年齡 int length_col = sizeof(student_age[0])/4;//每一列的個數
int length_row = sizeof(student_age)/sizeof(student_age[0]);////每一行的個數

for(int i = 0;i <length_row ; i++)
{
cout << "數組中第" << i<< "行" << "學生的年齡為:" << endl;
for(int j = 0 ; j <length_col ; j++)
{
cout << student_age[i][j] << endl;
}
}}

9. 特殊矩陣和稀疏矩陣哪一種壓縮存儲後失去隨機存取的功能為什麼

稀疏矩陣壓縮存儲後,必會失去隨機存取功能。稀疏矩陣在採用壓縮存儲後將會失去隨機存儲的功能。因為在壓縮存儲當中,非零元素的分布是沒有規律的,為了壓縮存儲,就將每一個非零元素的值和它所在的行、列號做為一個結點存放在一起,即三元組表,它不是簡單的向量,所以無法用下標直接存取矩陣中的元素。

10. 稀疏矩陣一般的壓縮存儲方法有兩種

分別是三元組和十字鏈表。

三元組是指形如((x,y),z)的集合(這就是說,三元組是這樣的偶,其第一個射影亦是一個偶),常簡記為(x,y,z)。

三元組是計算機專業的一門公共基礎課程——數據結構里的概念。主要是用來存儲稀疏矩陣的一種壓縮方式,也叫三元組表。假設以順序存儲結構來表示三元組表(triple table),則得到稀疏矩陣的一種壓縮存儲方式,即三元組順序表,簡稱三元組表。

十字鏈表(Orthogonal List)是有向圖的另一種鏈式存儲結構。該結構可以看成是將有向圖的鄰接表和逆鄰接表結合起來得到的。用十字鏈表來存儲有向圖,可以達到高效的存取效果。同時,代碼的可讀性也會得到提升。

拓展資料:

十字鏈表(Orthogonal List)是有向圖的另一種鏈式存儲結構。可以看成是將有向圖的鄰接表和逆鄰接表結合起來得到的一種鏈表。在十字鏈表中,對應於有向圖中每一條弧都有一個結點,對應於每個定頂點也有一個結點。

十字鏈表之於有向圖,類似於鄰接表之於無向圖。

也可以理解為 將行的單鏈表和列的單鏈表結合起來存儲稀疏矩陣稱為十字鏈表, 每個節點表示一個非零元素。

三元組解釋:

1、所謂「三元組」是指圖形的幾何元素構成、圖線間的拓撲關系和尺寸約束。如果一組圖形的前二元相同而只是尺寸大小不同,則這組圖形構成一族形狀相同的系列化圖形。

2、把組成一個元素的三個數稱為三元組。一個三元組包含以下三部分的內容SDO_STARTING_OFFSET表明每個幾何元素的第一個坐標在SDO_ORDINATES數組中的存儲位置。

3、…Mt:N2)的表示稱為三元組...…Mt稱為標號,N1、N2為結點R為關系。當n≠0時,稱Li為對結點N1的修飾。t≠0時,稱Mj為對結點N2的修飾。

參考資料:網路:十字鏈表

網路:三元組

熱點內容
上傳文件文件夾找不到 發布:2024-09-20 00:26:32 瀏覽:914
承台箍筋加密區 發布:2024-09-20 00:26:31 瀏覽:227
筆記本什麼配置能流暢運行cf 發布:2024-09-20 00:14:19 瀏覽:951
實測華為編譯器 發布:2024-09-19 23:50:52 瀏覽:821
linux匯總 發布:2024-09-19 23:46:39 瀏覽:452
阿里雲伺服器環境搭建教程 發布:2024-09-19 23:21:58 瀏覽:837
黃色文件夾圖標 發布:2024-09-19 23:19:22 瀏覽:684
mysql資料庫導出導入 發布:2024-09-19 23:00:47 瀏覽:183
lua腳本精靈 發布:2024-09-19 23:00:41 瀏覽:659
任務欄文件夾圖標 發布:2024-09-19 22:54:25 瀏覽:101