How to vectorize the loops
1 次查看(过去 30 天)
显示 更早的评论
Dear all,
Could anyone tell me how to vectorize the follow loops:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/156540/image.png)
Best regards.
Yeping Sun
4 个评论
Andrei Bobrov
2016-9-22
编辑:Andrei Bobrov
2016-9-22
Your code should be:
ev = exp(dv(:))';
Hr = zeros(40,40);
for ii = 1:40
for jj = 1:40
Hr(ii,jj) = ev*delta_2(:,ii,jj);
end
end
Vectorize form see my answer in part 3.
回答(1 个)
Andrei Bobrov
2016-9-22
编辑:Andrei Bobrov
2016-9-22
if dv -scalar:
out = permute(sum(delta*exp(dv)),[2,3,1]);
if dv - vector:
out = permute(sum(...
reshape(sum(bsxfun(@plus,reshape(delta,[],1),exp(dv(:)')),2),size(delta))...
),[2,3,1]);
part 3
ev = exp(dv)';
[~,n,k] = size(delta_2);
out = reshape(ev*reshape(delta_2,k,[]),n,[]);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!