13、稀疏矩阵

目录

一、稀疏矩阵的生成

1.利用sparse函数建立一般的稀疏矩阵

2.利用特定函数建立稀疏矩阵

二、稀疏矩阵的运算


一、稀疏矩阵的生成

1.利用sparse函数建立一般的稀疏矩阵

稀疏矩阵指令的调用格式:

示例1:输入一个稀疏矩阵

A=sparse([1 2 3 4 5],[2 1 4 6 2],[10 3 -2 -5 1],10,12)

运行结果:

此外,sparse函数还可以将一个满矩阵转换成一个稀疏矩阵,相应的调用格式如下:

  1. S = sparse(X):X为满矩阵。

反之,MATLAB提供了full()函数把稀疏矩阵转换为满矩阵。full()函数的调用格式如下:

  1. A = full(S):S为稀疏矩阵。

示例2:生成稀疏矩阵A并转换为满矩阵

A=[1 0 0 0;0 5 0 0;2 0 0 7]

B=sparse(A) %转为稀疏矩阵

C=full(B) %转为满矩阵

运行结果:

示例3:将普通矩阵转换为稀疏矩阵

A=rand(16,9)>0.95

B=sparse(A) %创建稀疏矩阵

whos

运行结果:

示例4:查看稀疏矩阵中非零的信息

A=[0 0 0 1;0 0 8 0;4 0 0 0;0 0 0 0]

B=sparse(A) %创建稀疏矩阵

whos

n1=nnz(B) %查看非零元素个数

n2=nonzeros(B) %非零元素的值

n3=nzmax(B) %查看稀疏矩阵的存储空间

spy(B)

n4=nnz(B)/prod(size(B))

运行结果:

注意

spy()函数对稀疏矩阵中非零元素的分布进行图形化显示:

采用nnz(S)/prod(size(S))计算稀疏矩阵的非零元素密度。

2.利用特定函数建立稀疏矩阵

MATLAB提供了一些函数来创建特殊的稀疏矩阵:

示例5:利用speye函数创建单位稀疏矩阵

A=speye(5) %创建5阶单位稀疏矩阵

B= speye (5,6) %创建稀疏矩阵

C=full(A)

D=full(B)

运行结果:

示例6:创建非零元素为随机数的对称稀疏矩阵

A=sprandsym(5,0.1) %建立非零元素为随机数的对称稀疏矩阵

B=spones(A) %建立非零元素为1的与矩阵A维数相同的对称稀疏矩阵

C=full(A)

D=full(B)

运行结果:每次运行结果不同哦!!!

二、稀疏矩阵的运算

  1. 满矩阵的四则运算对稀疏矩阵同样有效,但是返回结果有可能是稀疏矩阵或者满矩阵。
  2. 对于单个稀疏矩阵的输入,大部分函数输出的结果都是稀疏矩阵,
  3. 有部分函数输出的结果是满矩阵。对于多个矩阵的输入,如果其中至少有一个矩阵是满矩阵,那么大部分函数的输出结果是满矩阵。
  4. 对于矩阵的加、减、乘、除运算,只要其中有一个是满矩阵,则输出的结果都是满矩阵。
  5. 稀疏矩阵的数乘为稀疏矩阵;稀疏矩阵的幂为稀疏矩阵。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值