Matlab-稀疏矩阵

本文介绍了MATLAB中如何创建和转换稀疏矩阵,包括使用`sparse`函数和`speye`等特殊函数。同时,展示了将稀疏矩阵转回全矩阵的方法,并讨论了稀疏矩阵在运算中的效率优势。`issparse`函数用于检测矩阵的稀疏性,而MATLAB还提供了多种针对稀疏矩阵的运算支持。
摘要由CSDN通过智能技术生成

稀疏矩阵:指一个很大的矩阵,且大多数的元素为 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 稀疏矩阵函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值