How to vectorize the following piece of code by removing the two for loops?
2 次查看(过去 30 天)
显示 更早的评论
clear all;clc
u=[3 4 30 50];% Desired Vector
b=u;
[R,C]=size(b);
P=C/2;
M=2*C;
xo=zeros(1,M);
for k=1:M
for i=1:P
xo(1,k)=xo(1,k)+1*exp(1i*((k-1)*(-pi/2)*sind(u(P+i))+((k-1)^2*pi/(16*u(i)))*cosd(u(P+i))^2));
end
end
xe=zeros(1,M);
for k=1:M
for i=1:P
xe(1,k)=xe(1,k)+1*exp(1i*((k-1)*(-pi/2)*sind(b(P+i))+((k-1)^2*pi/(16*b(i)))*cosd(b(P+i))^2));
end
end
%%%%%%%%%%%%%%%%%%
% MSE
%%%%%%%%%%%%%%%%%%
e=norm(xo-xe).^2/(M);
0 个评论
采纳的回答
Torsten
2023-12-17
编辑:Torsten
2023-12-17
clear all;clc
u=[3 4 30 50];% Desired Vector
b=u;
[R,C]=size(b);
P=C/2;
M=2*C;
k = (1:M).';
i = (1:P);
xo = sum(1*exp(1i*((k-1).*(-pi/2).*sind(b(P+i))+((k-1).^2.*pi./(16*b(i))).*cosd(b(P+i)).^2)),2)
xe = sum(1*exp(1i*((k-1).*(-pi/2).*sind(b(P+i))+((k-1).^2.*pi./(16*b(i))).*cosd(b(P+i)).^2)),2)
%%%%%%%%%%%%%%%%%%
% MSE
%%%%%%%%%%%%%%%%%%
e=norm(xo-xe).^2/(M)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!