Error Attempted to access x(2,1); index out of bounds because size(x)=[1,4]
조회 수: 1 (최근 30일)
이전 댓글 표시
I am using Genetic Algorithm Toolbox(GUI). My fitness function is;
function y=regressionfcn(x)
for j=1:30
y= -0.0249 - 0.2075* x(j,1) - 0.3313* x(j,2) - 0.0731* x(j,3) - 0.0738* x(j,4);
end
end
But there occurs error as
Error Attempted to access x(2,1); index out of bounds because size(x)=[1,4]
댓글 수: 0
답변 (2개)
Sean de Wolski
2012년 5월 25일
Apparently the regression function is fed a row vector rather than a column vector. To fix this, use:
J(1,2) or to be even safer just use j(2).
Walter Roberson
2012년 5월 25일
The fitness function for ga is expected to take a row vector as input.
Are you really trying to fit 120 parameters?? Is there any reason you are not using a simple linear regression instead of ga() ?
댓글 수: 4
Walter Roberson
2012년 5월 25일
function y=regressionfcn(x)
y= -0.0249 - 0.2075 * x(:,1) - 0.3313 * x(:,2) - 0.0731 * x(:,3) - 0.0738 * x(:,4);
end
This should be more efficient. Also note that your previous code overwrote "y" in each loop iteration.
The body could, I think, be made even more efficient as just
y = [ones(size(x,1),1) x] * [-0.0249 -0.0275 -0.3313 -0.0731 -0.0738];
참고 항목
카테고리
Help Center 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!