矩阵的稀疏度计算(matlab)

矩阵的稀疏度计算(matlab),第1张

得到非负矩阵分解(NMF)的基图像矩阵和系数矩阵后,Hoyer [1] 提出可以利用L1范数和L2范数之间的差异度来衡量分解后矩阵的稀疏度。

L1范数 :所有元素的绝对值之和。

L2范数 :所有元素的平方之和的平方根。

计算x的稀疏度,分三步:

稀疏度计算(matlab)

在ORL人脸数据集上的实验对比:

Reference:

[1] Non-negative Matrix Factorization with Sparseness Constraints

稀疏矩阵是指很少非零元素的矩阵,这样的矩阵就成为稀疏矩阵,这种特性提供了矩阵存储空间和计算时间的优点。 我们可以使用MATLAB函数sparse把它转换成稀疏矩阵,该函数语法为: S=sparse(A)函数sparse()的更常用的用法是用来产生稀疏矩阵,具体语法如下: S=vsparse(r,c,s,m,n)其中r和c是我们希望产生的稀疏矩阵的矩阵中非零元素的行和列索引向量。参数s是一个向量,它包含索引对(r,c)对应的数值,m和n是结果矩阵的行维数和列维数。 如果要获得完成的矩阵,可以使用full()函数,函数语法: A=full(s) 针对你的问题,要产生上三角稀疏矩阵,一个可能的思路是先产生上三角正常矩阵,在将其稀疏化A = triu(ones(4,4))上述函数用来产生一个上三角矩阵,所以 S=sparse(A)将其转化为稀疏矩阵

稀疏度就是信号中非零元素的个数,因此找到信号中非零元素的个数就行了

I=find(A(:)>0.1)小于0.1的可以看作是零,当然0.1只是一个参考值,其他的也行

K=length(I)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11906410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存