Llamada a fminsearch desde función
Publicado por Natalia (1 intervención) el 09/01/2011 01:25:52
Hola, soy principiante en esto y tengo un problema con Simulink que no sé cómo resolver, a ver si algún alma caritativa me puede ayudar... :-D
Estoy intentando desarrollar una simulación de un sistema de energía solar y me encuentro con un problema a la hora de optimizar los valores de salida. Si hago una llamada a la función fminsearch desde línea de comandos, todo funciona correctamente. El problema viene cuando intento hago la llamada a fminsearch desde una función y llamo a ésta última desde la ventana de comandos. El resultado es que, o bien se mete en un bucle infinito, o bien me suelta el error siguiente:
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
Error in ==> solar_cell_lse at 8
Pars = reshape([ParsList; cellstr(num2str(params'))'],1,[]);
Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});
Error in ==> solar_cell_optimization at 51
OptParsMain = fminsearch(@solar_cell_lse, InitGuessMain,
que, si no me equivoco, indica un error en los parámetros de entrada.
Entiendo que embebiéndola dentro de una función se crea una llamada recursiva generando el bucle infinito; pero no sé cómo resolver el problema ya que mi simulación se encuentra dentro de un bucle y necesito que se optimicen los valores para cada vuelta del bucle.
¿Hay alguna solución para esto u otra manera de optimizar mi simulación, sin tanta complicación?
Muchas Gracias ...
Estoy intentando desarrollar una simulación de un sistema de energía solar y me encuentro con un problema a la hora de optimizar los valores de salida. Si hago una llamada a la función fminsearch desde línea de comandos, todo funciona correctamente. El problema viene cuando intento hago la llamada a fminsearch desde una función y llamo a ésta última desde la ventana de comandos. El resultado es que, o bien se mete en un bucle infinito, o bien me suelta el error siguiente:
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
Error in ==> solar_cell_lse at 8
Pars = reshape([ParsList; cellstr(num2str(params'))'],1,[]);
Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});
Error in ==> solar_cell_optimization at 51
OptParsMain = fminsearch(@solar_cell_lse, InitGuessMain,
que, si no me equivoco, indica un error en los parámetros de entrada.
Entiendo que embebiéndola dentro de una función se crea una llamada recursiva generando el bucle infinito; pero no sé cómo resolver el problema ya que mi simulación se encuentra dentro de un bucle y necesito que se optimicen los valores para cada vuelta del bucle.
¿Hay alguna solución para esto u otra manera de optimizar mi simulación, sin tanta complicación?
Muchas Gracias ...
Valora esta pregunta


0