• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Matlab稀疏矩阵

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式
  1.完全存储方式
  将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。
  2.稀疏存储方式
  仅存储矩阵所有的非零元素的值及其位置,即行号和列号,显然这对于具有大量零元素的稀疏矩阵来说是十分有效的。
  设

  1 0 0 0
A=   0 5 0 0
  2 0 0 7

  是具有稀疏矩阵特征的矩阵,其完全存储方式是按列存储的全部12个元素
  1,0,2,0,5,0,0,0,0,0,0,7
  其稀疏存储方式如下:
  (1,1),1,(3,1),2,(2,2),5,(3,4),7
  括号内为元素的行列位置,后面为元素值。
  当矩阵非常的“稀疏”时,会有效的节省存储空间。

二、稀疏存储方式的产生

  1.将完全存储方式转化为稀疏存储方式
  A=sparse(S);将S矩阵转换为稀疏矩阵A;
  sparse(m,n);产生m*n的所有元素都为0的稀疏矩阵
  sparse(u,v,S);S为建立系数矩阵的非零元素,u(i),v(i)分别为S(i)的行和列下标,S,u,v为等长向量。
  [u,v,S]=find(A);返回矩阵A中非零元素的下标和元素,返回值可以作为sparse(u,v,S);的参数
  full(A);返回和稀疏存储方式A对应的完全存储方式。
  例如

X=[2,0,0,0,0;0,0,0,0,0;0,0,0,5,0;0,1,0,0,-1;0,0,0,0,-5]
A=sparse(X)
A=
(1,1) 2
(4,2) 1
(3,4) 5
(4,5) -1
(5,5) -5

  A就是X的稀疏存储方式。

  2.产生稀疏存储矩阵
  sparse可以讲完全存储方式转换为稀疏存储方式,那么,当使用稀疏矩阵时,要先产生完全存储方式的矩阵,然后再转换,这显然是不可取的,MATLAB有自己产生稀疏矩阵的函数spconvert:
  B=spconvert(A);A为一个m*3或m*4的矩阵,A的每一列的意义分别为:
  (i,1)第i非零元素所在行
  (i,2)第i非零元素所在列
  (i,3)第i非零元素的实部
  (i,4)第i非零元素的虚部


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphiini文件操作TIniFile、TMemIniFile发布时间:2022-07-18
下一篇:
Delphi视频教程发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap