关于稀疏矩阵- Windows Live

关于稀疏矩阵

matlab中的稀疏矩阵

2.8 稀疏矩阵
2.8.1?
矩阵存储方式
MATLAB
的矩阵有两种存储方式:xx存储方式和稀疏存储方式。
1
.xx存储方式
xx存储方式是将矩阵的全部元素按列存储。以前讲到的矩阵的存储方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用。

2.稀疏存储方式
稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在MATLAB中,稀疏存储方式也是按列存储的。
注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的0元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏方式存储的矩阵。

汗纳,原来,在MATLAB中,所谓的稀疏矩阵只是一种稀疏存储方式,而所谓的产生稀疏矩阵,也仅仅是把xx存储的矩阵转化成稀疏存储而已,并不是真正地产生一个满足要求的稀疏矩阵。要产生的话,需要自己设计算法,做出来之后我会把代码贴到下面。

2.8.2? 稀疏存储方式的产生
1
.将xx存储方式转化为稀疏存储方式
函数A=sparse(S)将矩阵S转化为稀疏存储方式的矩阵A。当矩阵S是稀疏存储方式时,则函数调用相当于A=S
sparse
函数还有其他一些调用格式:
sparse(m,n)
:生成一个m×n的所有元素都是0的稀疏矩阵。
sparse(u,v,S)--
u,v,S3个等长的向量。S是要建立的稀疏矩阵的非0元素,u(i)v(i)分别是S(i)的行和列下标,该函数建立一个max(u)行、max(v)列并以S为稀疏元素的稀疏矩阵。
此外,还有一些和稀疏矩阵操作有关的函数。例如
[u,v,S]=find(A)
:返回矩阵A中非0元素的下标和元素。这里产生的u,v,S可作为sparse(u,v,S)的参数。
full(A)
:返回和稀疏存储矩阵A对应的xx存储方式矩阵。

2.产生稀疏存储矩阵
只把要建立的稀疏矩阵的非0元素及其所在行和列的位置表示出来后由MATLAB自己产生其稀疏存储,这需要使用spconvert函数。调用格式为:
B=spconvert(A)
其中A为一个m×3m×4的矩阵,其每行表示一个非0元素,m是非0元素的个数,A每个元素的意义是:
(i,1)?
i个非0元素所在的行。
(i,2)?
i个非0元素所在的列。
(i,3)?
i个非0元素值的实部。
(i,4)?
i个非0元素值的虚部,若矩阵的全部元素都是实数,则无须第四列。
该函数将A所描述的一个稀疏矩阵转化为一个稀疏存储矩阵。

注:以上所有资料来源于网络

老师让做新的实验了,先写到这里,回头再来研究

我先输入几个音频信号看一下散点图的效果

Comments (2)

郑重声明:资讯 【关于稀疏矩阵- Windows Live】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——