how to velocize it (vectorizing)
1 回表示 (過去 30 日間)
古いコメントを表示
a=magic(10)
b=[4;5;9;2;3;4;2;7;4;9] %width(a) element
x=ones(size(a));
for i=1:numel(b)
x(1:max(b(i)-1,1),i)=0
end
0 件のコメント
回答 (1 件)
Bruno Luong
2023 年 8 月 20 日
編集済み: Bruno Luong
2023 年 8 月 20 日
I don't know why a is matter beside that the first dimension is 10
a=magic(10);
b=[4;5;9;2;3;4;2;7;4;9]; %width(a) element
h = size(a,1);
x = double(ndgrid(1:h,b)>=b(:)')
;
9 件のコメント
Bruno Luong
2023 年 8 月 20 日
編集済み: Bruno Luong
2023 年 8 月 20 日
"I've noticed dramatic improvements when it comes to vectorizing code where there is a loop inside another"
Not really. The speed depens what you do in the body of the loop(s), not loop are nested or not.
I know what I'm talking on speeding MATLAB code.
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!