Vectorize two for loops

How to vectorize this function:
for i=1:100
for j=1:200
TheOne(i,j) = i+j;
end
end

回答 (2 件)

David Hill
David Hill 2020 年 11 月 19 日
編集済み: David Hill 2020 年 11 月 19 日

0 投票

[i,j]=meshgrid(1:100,1:200);
TheOne=reshape(sum((Png1(:,i)-Png2(:,j)).^2),100,[]);

4 件のコメント

Master Blabla
Master Blabla 2020 年 11 月 19 日
Could You get a little simple solution?
David Hill
David Hill 2020 年 11 月 19 日
Does not get any simpler.
Master Blabla
Master Blabla 2020 年 11 月 19 日
It does not work correctly
David Hill
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
CHENG QIAN LAI 2020 年 11 月 24 日

0 投票

[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;

カテゴリ

ヘルプ センター および File ExchangeProgramming についてさらに検索

タグ

質問済み:

2020 年 11 月 19 日

回答済み:

2020 年 11 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by