MATLAB Answers

Mohsen

Simple Question about Optimization of Nested FOR loops

Asked by Mohsen
on 14 Jun 2013

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

  0 Comments

2 Answers

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

  0 Comments


Answer by 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!

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today