有两个矩阵X和M,我需要获得以下矩阵D
m = 20; n = 10;
X = rand(m,n);
M = rand(m,m);
M = (M + M')/2;
D = zeros(n,n);
for i = 1:n
for j = 1:n
D(i,j) = X(:,i)'*M*X(:,j);
end
end
当n和m很大时,D的计算非常慢。有没有办法加快?
答案 0 :(得分:0)
答案是:
D = 0.5*X.'*(M+M')*X
(这是对Divakar提供的解决方案的略微修改,以便返回正确的矩阵D)