How to vectorize the loops
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Andrei Bobrov
am 22 Sep. 2016
Bearbeitet: Andrei Bobrov
am 22 Sep. 2016
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.
Antworten (1)
Andrei Bobrov
am 22 Sep. 2016
Bearbeitet: Andrei Bobrov
am 22 Sep. 2016
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 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!