QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1047|回复: 0
打印 上一主题 下一主题

sparse数据类型

[复制链接]
字体大小: 正常 放大
回帖奖励 1 点体力 回复本帖可获得 1 点体力奖励! 每人限 1 次

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-9-26 22:55 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    sparse数据类型
    在MATLAB中有一个专门的数据类型,用来对稀疏进行运算。sparse数据类型不同于doulbe数据,它在内存中只存储非零元素。实际上,sparse数据类型只存储每一个非零元素的三个值:元素值,元素的行号和列号。尽管非零元素这三个值必须存储在这内存,但相对于存储稀疏矩阵的所有元素来说要简单高效得多。
    我们用10×10的方阵来说明稀疏矩阵的应用。
    >> a = eye(10)
    a =
         1     0    0     0     0    0     0     0    0     0
         0     1    0     0     0    0     0     0    0     0
         0     0    1     0     0    0     0     0    0     0
         0     0    0     1     0     0    0     0     0    0
         0     0    0     0     1    0     0     0    0     0
         0     0    0     0     0    1     0     0    0     0
         0     0    0     0     0    0     1     0    0     0
         0     0    0     0     0    0     0     1    0     0
         0     0    0     0     0    0     0     0    1     0
         0     0    0     0     0    0     0     0    0     1
    如果这个矩阵被转化为稀疏矩阵,它的结果是
    >> as = sparse(a)
    as =
       (1,1)        1
       (2,2)        1
       (3,3)        1
       (4,4)        1
       (5,5)        1
       (6,6)        1
       (7,7)        1
       (8,8)        1
       (9,9)        1
      (10,10)       1
    注意在稀疏矩阵存储的是行列地址和这一点所对应的非零数据值。只要一个矩阵的大部分数都是0,这种方法用来存储数据就是高效的,但是如果非零元素很多的话,那么用占用更多的空间,因为稀疏矩阵需要存储蓄地址。函数issparse通常用作检测一个矩阵是否为稀疏矩阵。如果这个矩阵是稀疏的,那么这个函数将会返回1。
    稀疏矩阵的优点可以通过下面的描述体现出来,考虑一个1000×1000的矩阵平均每一行只有4个非零元素。如果这个矩阵以全矩阵的形式储存,那么它要战胜8000000个字节。从另一方面说,如果它转化为一个稀疏矩阵,那么内存的使用将会迅速下降。


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 14:41 , Processed in 0.754071 second(s), 55 queries .

    回顶部