假设我有一个N-by-K
矩阵A
,N-by-P
矩阵B
。我想做以下计算来得到我的最终N-by-P
矩阵X
。
X(n,p) = B(n,p) - dot(gamma(p,:),A(n,:))
在哪里
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
这是非常低效的,因为它使用三个 for 循环!有没有加快这段代码的好方法?