How to speed up this function?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi all,
I am calculating a value Gamma as shown in the image below.
I have implemented this calculation as a for-loop and I suspect it could be done without using a for-loop and be faster. Every h term is the jth column of an NxK matrix and Pj is the jth column of KxK diagonal matrix P. What is the fastest way to calculate this value?
function [ GAMMA ] = gamma_dnc( P,Hh,Ht,K )
%GAMMA_DNC Calculates the component GAMMA in the DNC
% beamforming matrix V.
% Running total
total = 0;
for j = 1:K
p = P(j,j); % Select jth column of P
ht = Ht(:,j); % Select jth column of Ht
hh = Hh(:,j); % Select jth column of Hh
% Perform summation
h1 = ht*(hh');
h2 = hh*(ht');
h3 = ht*(ht');
h4 = h1 + h2 + h3;
total = total + p*h4;
end
GAMMA = mean2(total);
end
댓글 수: 1
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!