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

for loop execution problem

Asked by PK on 3 Nov 2012

for the code below pls ignore all except colonysize my problem is my colonysize is 6 but when i execute colonsize/2 i have to get 3 but for the sample of code below its getting as 1 when i write the code as

    for  i = 1:colonysize/2;
        j = randperm(siz);
        k = randperm(colonysize/2);
        but for below case when j is initiaised first it works fine 
 for j = randperm(siz)
        i = 1:colonysize/2;
        k = randperm(colonysize/2);
pi = randi([-1 1])*rand;  
        emp_bee(i,j) = bee(i,j) + (pi * (bee(i,j)-bee(k,j)));
end

bee(i,j) is a 3x5 matrix

2 Comments

Azzi Abdelmalek on 3 Nov 2012

what is siz

there is an end missing

PK on 3 Nov 2012

siz=5

PK

Tags

Products

No products are associated with this question.

1 Answer

Answer by Wayne King on 3 Nov 2012

I do not have any difficulty with either of these for loops

 colonysize = 6;
 siz = 5;
 bee = randn(3,5);
 for  i = 1:colonysize/2;
        j = randperm(siz);
        k = randperm(colonysize/2);
 end

Or

for j = randperm(siz)
      i = 1:colonysize/2;
      k = randperm(colonysize/2);
pip = randi([-1 1])*rand;  
      emp_bee(i,j) = bee(i,j) + (pip * (bee(i,j)-bee(k,j)));
end

I changed pi to pip above. Are you sure you want to overwrite pi in MATLAB?

0 Comments

Wayne King

Contact us