Why does matlab return "Index exceeds matrix dimensions"?

1 view (last 30 days)
Hello,
Nind=2; %number of vectors
Nvar=2; %number of variables in each vector
perci=3; %number of bits of every variable
ph=zeros(Nind, Nvar);
ch=crtbp(Nind, Nvar*perci); %random binary matrix and crtbp is a function from
%genetic algorithm MATLAB toolbox
for i=1:Nind
s=1; E=perci;
for j=1:Nvar
d=ch(i,s:E)
s=E+1; E=s+ perci;
phen(i,j)=bi2de(d)
j=j+1;
end
i=i+1;
end
ph
The aim of the code is to take in the ith row of ch, the first perci bits which is a binary row vector and convert it to a real number then take this real number and put it in ph, then in the same ith row in ch take the 2nd perci bit namely, perci+1 to 2*perci +1 and convert it to a real number and put it into ph and so on
whenever i run the code it tells me "Index exceeds matrix dimensions."
I don't know why
  2 Comments
Cantor Set
Cantor Set on 1 Sep 2019
Edited: Cantor Set on 1 Sep 2019
Hello Roberson,
Yes, I used the crtbp function in the GA toolbox. But, when I run the code it was telling me
"Index exceeds matrix dimensions" refering to the line
d=ch(i,s:E)
But, I solved it. It was a careless calculation problem.
Thank you!

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by