Matlab:sparse()和full()兩個常用函數的理解。

sparse函數

功能:Create sparse matrix-創建稀疏矩陣

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

例如:

A=
     0     2     0
     4     0     6
     7     0     0

B=sparse(A)=

   (2,1)        4
   (3,1)        7
   (1,2)        2
   (2,3)        6

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

例如:

B=sparse([1,2,3],[1,2,3],[0,1,2],4,4,4)
 
B =
   (2,2)        1
   (3,3)        2

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

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

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

一些簡寫的情況: 

S = sparse(i,j,s,m,n)——nzmax = length(S) ;   

S = sparse(i,j,s)——使m = max(i) 和 n = max(j),在S中零元素被移除前計算最大值,[i j s]中其中一行可能爲[m n 0];   

S = sparse(m,n)——sparse([],[],[],m,n,0)的縮寫,生成一個m*n的所有元素都是0的稀疏矩陣。

 

full函數

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

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

matlab sparse matrix和full matrix

 

參考:https://www.cnblogs.com/Demo1589/p/7881762.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章