Is it possible to vectorize this loop?
20 次查看(过去 30 天)
显示 更早的评论
A = rand(1, 100);
B = rand(1, 100);
w = 0;
for i = 1:length(A)
w = w + A(i).*B;
end
0 个评论
采纳的回答
更多回答(1 个)
Jan
2020-11-30
编辑:Jan
2020-11-30
A = rand(1, 1000);
B = rand(1, 1000);
tic
for k = 1:1000
w = 0;
for i = 1:length(A)
w = w + A(i).*B;
end
end
toc
tic
for k = 1:1000
w = (sum(A .* B(:),2))';
end
toc
tic
w = 0;
for k = 1:1000
w = sum(A' * B);
end
toc
I get the timings (Matlab online!):
0.34 seconds
0.69 seconds
0.41 seconds
So check it on your machine is the vectorization is an advantage.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!