Why does matlab return "Index exceeds matrix dimensions"?

조회 수: 1 (최근 30일)
Cantor Set
Cantor Set 2019년 9월 1일
편집: Cantor Set 2019년 9월 1일
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
Walter Roberson
Walter Roberson 2019년 9월 1일
Where are you finding crtbp() ? Are you using the third-party gatbx package, which you can download from http://www.acse.dept.shef.ac.uk/cgi-bin/gatbx-download ?
Cantor Set
Cantor Set 2019년 9월 1일
편집: Cantor Set 2019년 9월 1일
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!

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by