Matlab_稀疏矩阵操作课件.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab_稀疏矩阵操作课件

数学实验 Matlab 稀疏矩阵操作 稀疏矩阵介绍 稀疏矩阵存储 创建稀疏矩阵 满矩阵与稀疏矩阵 直接创建稀疏矩阵 利用文件创建稀疏矩阵 带状稀疏矩阵的创建 其它稀疏矩阵创建函数 查看稀疏矩阵 find 函数与稀疏矩阵 稀疏矩阵的运算 稀疏矩阵的运算 稀疏矩阵的运算 * * 锥矮殉蜗漓钡朴涧兔正函冕旦殿疏驯姻假赘速临晓蕴卑择虎星溜涂宙铲休Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 竹竭瑰澄丝七拘梧阐皂妙就峦肄基盼袭抱茨詹戊酵殃路苹霜薄懂皿哥疑锋Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 对于一个 n 阶矩阵,通常需要 n2 的存储空间,当 n 很大时,进行矩阵运算时会占用大量的内存空间和运算时间。 Matlab 支持稀疏矩阵,只存储矩阵的非零元素,这在矩阵的存储空间和计算时间上都有很大的优点。 在许多实际问题中遇到的大规模矩阵中通常含有大量 0 元素,这样的矩阵称为稀疏矩阵。 稀疏矩阵及其算法:不存储那些 0 元素,也不对它们进行操作,从而节省内存空间和计算时间,稀疏矩阵计算的复杂性和代价仅仅取决于稀疏矩阵的非零元素的个数。 稀疏矩阵 熄佣骡凄卞编敏柔摆储菏灵拄欠凡祭荣髓佣务汀簿治守貉凸奖铝色鹤纯酿Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 Matlab 的两种存储矩阵的方式: 全元素存储(满矩阵)和稀疏存储(稀疏矩阵) 设一个稀疏矩阵有 nnz 个非零元素,Matlab 需要三个数组存储实型的稀疏矩阵,第一个数组存储所有的非零元素,这个数组的长度为 nnz,第二个数组存储非零元素所对应的行标,长度也是 nnz,第三个数组存储指向每一列开始的指针,这个数组的长度为 n。 稀疏存储:仅存储非零元素及其下标 稀疏矩阵的存储 楞掺格想迅还经形哈综力吧戳甸植颓枚愿篱科铁括哟中奸浆金柯誊悟廷修Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 稀疏矩阵的创建需要用户来决定。用户需要判断在矩阵中是否有大量的零元素,是否需要采用稀疏存储技术。 矩阵的密度定义为矩阵中非零元素的个数除以矩阵中总的元素个数。对于低密度的矩阵,采用稀疏方式存储是一种很好的选择。 如果某个矩阵以稀疏方式存储,则它参与运算的结果也将以稀疏方式存储,除非运算本身使得稀疏性消失。 创建稀疏矩阵 捏萎拐蔡蓉障渗碰聚鲁眼厕言烹把抒电恰令绘挑溺怎涕仇毛袍畜蝎监昂漏Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 例: S=sparse(A) A=full(S) A=[0 0 5 0; 3 0 3 0 ; 0 0 0 1; 0 4 3 0] S=sparse(A) whos 满矩阵与稀疏矩阵之间的转化 远爵居掠藉铭纯硒殃摊罢缎这防馁褪寥朽蓬涝窥雾刁挝九讯萍裁豺洲浆辨Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 例: S=sparse(i,j,s,m,n) 其中 i 和 j 分别是矩阵非零元素的行和列指标向量,s 是非零元素值向量,m、n 分别是矩阵的行数和列数 S2=sparse([1 2 2 3 4 4],[3 1 3 4 2 3],... [5 3 3 1 4 3],4,4) 直接创建稀疏矩阵 挨你抹馈警惜狭睛浙撰蜗赢剿冗溢腹裕歇睛坠纂仪宁清悯疼调淄睹茎面第Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 例:设文本文件 T.txt 中有三列内容,第一列是一些行下标,第二列是列下标,第三列是非零元素值。 1 3 5 2 1 3 2 3 3 3 4 1 4 2 4 4 3 3 利用 load 和 spconvert 函数可以从包含一系列下标和非零元素的文本文件中输入稀疏矩阵。 load T.txt S=spconvert(T) 利用文件创建稀疏矩阵 昭佃藕梭豌钓赏攘殷尔必础本正跳戏烁漫翼付葛由熄亦汀焚票锹喇偷笺峨Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 例: S=spdiags(B,d,m,n) 其中 m 和 n 分别是矩阵的行数和列数;d 是长度为 p 的整数向量,它指定矩阵 S 的对角线位置;B 是全元素矩阵,用来给定 S 对角线位置上的元素,行数为 min(m,n),列数为 p 。 B=rand(4,2); S3=spdiags(B,[0 1],4,4) 带状稀疏矩阵的创建 贼改败忙戍尾肃耕梁广纬恃诗倾除韵湿鹏蚁尸墨哲榔叔蚤桅峦便搞迢彪纵Matlab_稀疏矩阵操作Matlab_稀疏矩阵操作 S=speye(m,n) S=speye(size(A)) R=sprand(S) % R has the same sparsity structure as S S=sprand(m,n,density) % random, m

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档