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

*No products are associated with this question.*

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?

Opportunities for recent engineering grads.

## 2 Comments

## Azzi Abdelmalek (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/52651#comment_109069

what is

sizthere is an

endmissing## PK (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/52651#comment_109070

siz=5