sparse 稀疏函數的用法

sparse函數函數

功能:建立稀疏矩陣spa

用法1:S=sparse(X)—將矩陣X轉化爲稀疏矩陣的形式,即矩陣X中任何零元素去除,非零元素及其下標(索引)組成矩陣S。 若是X自己是稀疏的,sparse(X)返回S。3d

舉例以下:code

複製代碼
1 >> a=[1,0,2;0,0,1;0,0,6];
 2 >> a
 3 
 4 a =
 5 
 6      1     0     2
 7      0     0     1
 8      0     0     6
 9 
10 >> b=sparse(a)
11 
12 b =
13 
14    (1,1)        1
15    (1,3)        2
16    (2,3)        1
17    (3,3)        6
複製代碼

 

用法2:S = sparse(i,j,s,m,n,nzmax)——由i,j,s三個向量建立一個m*n的稀疏矩陣(上面的B矩陣形式),而且最多含有nzmax個元素。blog

例如:B=sparse([1,2,3],[1,2,3],[0,1,2],4,4,4)索引

B =
   (2,2)        1class

   (3,3)        2im

其中i=[1,2,3],稀疏矩陣的行位置;j=[1,2,3],稀疏矩陣的列位置;s=[0,1,2],稀疏矩陣元素值。 其位置爲一一對應。d3

m=4(>=max(i)),n=4(>=max(j)) (注:m和n的值能夠在知足條件的範圍內任意選取),用於限定稀疏的大小。img

nzmax=4(>=max(i or j)),稀疏矩陣最多能夠有nzmax個元素。

full函數

功能:把稀疏矩陣轉爲全矩陣

A=full(X)—把稀疏矩陣X轉換爲全矩陣存儲形式A

 例如:矩陣b爲上面例子中的結果

複製代碼
1 >> c=full(b)
2 
3 c =
4 
5      1     0     2
6      0     0     1
7      0     0     6
複製代碼
matlab中sparse函數和full函數
這對函數能夠看作是一對反義詞,看下sparse函數和full函數在matlab中的實現。
從上面幾個例子,能夠直觀知道sparse函數和full函數的做用。這些只是簡單的說明的,如今下面講一個sparse函數經常使用的用法:
S=sparse(i,j,s,m,n,nzmax) 由向量i,j,s生成一個m*n的含有nzmax個非零元素的稀疏矩陣S。
具體的操做:
依次取i,j中的值做爲S的行標和列標,再在s中的值賦值到S中所對應的行標和列標。若S=sparse(i,j,s,m,n) ,此時的nzmax=length(s)。
相關文章
相關標籤/搜索