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 ExchangeProblem-Based Optimization Setup についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by