簡體   English   中英

Matlab向量化並避免for循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM