假设我有一个
在MATLAB中,我的代码如下:
N x K
的矩阵 A
和一个 N x P
的矩阵 B
。我想进行以下计算,以获得最终的 N x P
矩阵 X
。X(n,p) = B(n,p) - dot(gamma(p,:),A(n,:))
where
gamma(p,k) = dot(A(:,k),B(:,p))/sum( A(:,k).^2 )
在MATLAB中,我的代码如下:
for p = 1:P
for n = 1:N
for k = 1:K
gamma(p,k) = dot(A(:,k),B(:,p))/sum(A(:,k).^2);
end
x(n,p) = B(n,p) - dot(gamma(p,:),A(n,:));
end
end
这段代码使用了三个循环,效率非常低下!有没有好的方法可以加速这段代码?
s
是什么?j
又是什么? - Rody Oldenhuisgamma
,因为这会覆盖Matlab内置的gamma函数... - bla