How do I do this summation equation in MATLAB
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Brian
el 11 de Mayo de 2023
Comentada: Torsten
el 12 de Mayo de 2023
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1380734/image.png)
where u is a pair
and
is a 128x128 matrix
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1380739/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1380744/image.png)
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 comentarios
Respuesta aceptada
Matt J
el 11 de Mayo de 2023
Editada: Matt J
el 11 de Mayo de 2023
Looks like you could simply do it in one line with,
eta=vecnorm(Y(:,1:N/2),2,2).^2/N ;
2 comentarios
Torsten
el 12 de Mayo de 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
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!