Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Simple Question about Optimization of Nested FOR loops

Asked by Mohsen

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

Mohsen

Mohsen

Products

2 Answers

Answer by Andrei Bobrov

Andrei Bobrov

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

0 Comments

Andrei Bobrov

Andrei Bobrov

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

0 Comments

Mohsen

Mohsen

Contact us