Matlab-稀疏矩阵

稀疏矩阵:指一个很大的矩阵,且大多数的元素为 0。

目的:当矩阵中存在大量元素为0时,通过创建稀疏矩阵可以减少全矩阵的存储空间和运算量。

1 创建

方法1:

通过sparse创建

a = eye(5) %建立对角矩阵
as = sparse(a)%转化为稀疏矩阵 
whos

结果:

>> 
a =

     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1


as =

   (1,1)        1
   (2,2)        1
   (3,3)        1
   (4,4)        1
   (5,5)        1

  Name      Size            Bytes  Class     Attributes

  a         5x5               200  double              
  as        5x5               128  double    sparse    

方法2:

        用MATLAB函数 speye,sprand 和 sprandn 直接产生稀疏矩阵,它们对应的全矩阵为 eye,rand,和 randn。

aspeye=speye(5)

结果:

aspeye =

   (1,1)        1
   (2,2)        1
   (3,3)        1
   (4,4)        1
   (5,5)        1

2 稀疏矩阵转换为全矩阵

aspeye=speye(5)
b=full(aspeye)

结果:

aspeye =

   (1,1)        1
   (2,2)        1
   (3,3)        1
   (4,4)        1
   (5,5)        1


b =

     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1

3 稀疏矩阵的运算

        MATLAB 允许全矩阵与稀疏的混合运算。它们产生的结果可以是全矩阵也可以是稀疏矩阵,这取决于那种结果更高效

        issparse通常用作检测一个矩阵是否为稀疏矩阵。如果这个矩阵是稀疏的,那么这个函数将会返回 1。

 普通的 MATLAB 稀疏矩阵函数:

Matlab-稀疏矩阵_第1张图片

你可能感兴趣的:(matlab,matlab)