Simple Question about Optimization of Nested FOR loops

1 回表示 (過去 30 日間)
Mohsen
Mohsen 2013 年 6 月 14 日
How can I optimize the following code in order to avoid the FOR loops so that it runs faster?
for i=1:X;
for j=1:Y;
if A(i,j)==1;
B(i+(j-1)*Y*X)=C(i,j);
end
end
end

回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2013 年 6 月 14 日
B = zeros(X,Y,Y);
B(:,1,:) = permute(C.*(A == 1),[1,3,2]);
B = B(:);

Mohsen
Mohsen 2013 年 6 月 17 日
The code that you have provided doesn't seem to work.
Does any one know how to optimize this code:
for i=1:iNZ;
if iPointsinSlice>0;
for m=1:iNX;
for l=1:iNY;
if SliceMaskUr(m,l)==1;
DoseCubeU(m+(l-1)*iNX+i*iNX*iNY)=100*SumDose(m,l,i)/RX_Dose;
end
end
end
end
end
Many thanks!

カテゴリ

Help Center および File ExchangeGet Started with Optimization Toolbox についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by