Simple Question about Optimization of Nested FOR loops

4 views (last 30 days)
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

Answers (2)

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

Mohsen
Mohsen on 17 Jun 2013
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!

Categories

Find more on Problem-Based Optimization Setup in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!