我有两个稀疏矩阵A和B,其具有相同的稀疏模式(所有非零元素是在完全相同的位置):使用spfun与两个相同有序稀疏矩阵
i = randi(1000,[50,1]);
j = randi(1000,[50,1]);
a = rand(50,1);
b = rand(50,1);
A = sparse(i,j,a,1000,1000);
B = sparse(i,j,b,1000,1000);
我想计算有效实验值(AB)只为非零,并将其保存回A. 我试图用spfun该任务:
f = @(x,y) exp(x-y);
A = spfun(f,A,B);
,但我在spfun得到了一个错误说:“太多的输入参数” 任何人都可以提出一种有效的方法来计算它吗? 应该多次计算。
谢谢!
编辑:mikkola建议A = spfun(@f,A-B)
它解决了这个问题,但问题仍然是如何使用两个变量的函数来做到这一点,这是无法用同一个技巧解决的。例如:
g = @(x,y) x.*cos(y);
A = spfun(@g,A,B);
综观[文档】( http://se.mathworks.com/help/matlab/ref/spfun.html),我想你应该用'spfun(@exp,AB)'来代替。 – mikkola