【发布时间】:2017-07-26 08:06:34
【问题描述】:
有没有什么方法可以在没有for循环的情况下在Matlab中编写以下代码?
for g=1:nn
u(g)=uu(g)/norm(uu(g),vv(g));
v(g)=vv(g)/norm(uu(g),vv(g));
end
【问题讨论】:
标签: matlab for-loop optimization
有没有什么方法可以在没有for循环的情况下在Matlab中编写以下代码?
for g=1:nn
u(g)=uu(g)/norm(uu(g),vv(g));
v(g)=vv(g)/norm(uu(g),vv(g));
end
【问题讨论】:
标签: matlab for-loop optimization
如果是向量,可以分点:
mat = [uu.' vv.'];
norms = arrayfun(@(idx)norm(mat(idx,:)),1:length(uu)); % like this post https://www.mathworks.com/matlabcentral/newsreader/view_thread/172116
%or instead norms = sqrt(uu.^2 + vv.^2);
u = uu ./ norms;
v = vv ./ norms;
【讨论】: