我想知道MATLAB是否有一个工具箱可以处理稀疏矩阵的常见矩阵运算。
使用密集矩阵,我可以通过以下方法计算相关矩阵:
然而,会出现以下错误:
使用密集矩阵,我可以通过以下方法计算相关矩阵:
R = rand(10,100)
[r,p] = corr(R)
使用稀疏矩阵,我希望能够做到:
S = sprand(10,100,.2)
[r,p] = corr(S)
然而,会出现以下错误:
Error using betainc
Inputs must be real, full, and double or single.
Error in tcdf (line 70)
p(t) = betainc(xsq(t) ./ (v(t) + xsq(t)), 0.5, v(t)/2, 'upper') / 2;
Error in corr>pvalPearson (line 720)
p = 2*tcdf(-abs(t),n-2);
Error in corr>corrPearson (line 321)
pval(ltri) = pvalPearson(tail, coef(ltri), n);
Error in corr (line 204)
[coef,pval] = corrFun(rows,tail,x);
有人能帮我吗?
corr(rand(10))
,corr(toeplitz([2,1,0,0,0,0,0,0,0,0]))
)。如果您想要实现这个功能,那么没问题。但是您可能需要考虑一个标准,即假设相关性为零。请注意,一个完全填充的稀疏矩阵大约需要三倍于一个完整矩阵的大小。此外,您展示的示例并不是建议使用稀疏矩阵的情况s=sprand(10,10,.2); f=full(q); [r,p]=corr(s)
。 - patrik