Why does matlab return "Index exceeds matrix dimensions"?

1 visualizzazione (ultimi 30 giorni)
Cantor Set il 1 Set 2019
Modificato: Cantor Set il 1 Set 2019
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 CommentiMostra NessunoNascondi Nessuno
Walter Roberson il 1 Set 2019
Cantor Set il 1 Set 2019
Modificato: Cantor Set il 1 Set 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!

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by