Error Attempted to access x(2,1); index out of bounds because size(x)=[1,4]
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (2)
Sean de Wolski
el 25 de Mayo de 2012
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
el 25 de Mayo de 2012
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 comentarios
Walter Roberson
el 25 de Mayo de 2012
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];
Ver también
Categorías
Más información sobre Genetic Algorithm en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!