Vectorize two for loops
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
How to vectorize this function:
for i=1:100
        for j=1:200
            TheOne(i,j) = i+j;
        end
    end
0 个评论
回答(2 个)
  David Hill
      
      
 2020-11-19
        
      编辑:David Hill
      
      
 2020-11-19
  
      [i,j]=meshgrid(1:100,1:200);
TheOne=reshape(sum((Png1(:,i)-Png2(:,j)).^2),100,[]);
4 个评论
  David Hill
      
      
 2020-11-19
				Made a mistake. Try this.
[i,j]=meshgrid(1:100,1:200);
TheOne=reshape(sum((Png1(:,i)-Png2(:,j)).^2),200,[])';
  CHENG QIAN LAI
 2020-11-24
        [i,j]=ndgrid(1:100,1:200);
%    1   2   3   . . . 200
%---------------------------
% i= 1   1   1   . . . 1   | 1
%    2   2   2   . . . 2   | 2
%    3   3   3   . . . 3   | 3
%    .          .      .   | .
%    .             .   .   | .
%    .               . .   | .
%    100 100 100 . . . 100 | 100
%---------------------------
% j= 1   2   3   . . . 200 | 1
%    1   2   3   . . . 200 | 2
%    1   2   3   . . . 200 | 3
%    .          .      .   | .
%    .             .   .   | .
%    .               . .   | .
%    1   2   3   . . . 200 | 100
TheOne = i+j;
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


