How to vectorize the loops
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Dear all,
Could anyone tell me how to vectorize the follow loops:

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!