[英]matlab vectorization and avoid for loop
有兩個矩陣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的計算非常慢。 有什么辦法可以加快速度嗎?
答案將是:
D = 0.5*X.'*(M+M')*X
(這是對Divakar提供的解決方案的略微修改,以便返回正確的矩陣D)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.