How do I do this summation equation in MATLAB
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi! I'm a beginner MATLAB user and I'm trying to implement this summation equation in MATLAB but I'm not really sure how?
I'm used to other programming languages so I'd likely just use a nested for loop but I'm not sure if that's the best approach with MATLAB.
Equation is here:
where u is a pair
and
is a 128x128 matrix
My current best guess is to use nested for loops as such:
eta = zeros(1, N); % 1xN column vector to store answer
for row = 1:N %u1 is a "row"
tmp = 0;
for col = 1:N/2 % u2 is the "column" and only goes to N/2 (specified elsewhere)
tmp = tmp + abs(Y(row, col))^2;
end
eta(1, row) = tmp / N;
end
0 commentaires
Réponse acceptée
Matt J
le 11 Mai 2023
Modifié(e) : Matt J
le 11 Mai 2023
Looks like you could simply do it in one line with,
eta=vecnorm(Y(:,1:N/2),2,2).^2/N ;
2 commentaires
Torsten
le 12 Mai 2023
N = 4;
Y = rand(N) + 1i*rand(N);
eta = zeros(1, N); % 1xN column vector to store answer
for row = 1:N %u1 is a "row"
tmp = 0;
for col = 1:N/2 % u2 is the "column" and only goes to N/2 (specified elsewhere)
tmp = tmp + abs(Y(row, col))^2;
end
eta(1, row) = tmp / N;
end
eta
eta=vecnorm(Y(:,1:N/2),2,2).^2/N;
eta
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!