diff --git a/matlab/+pac/+estimate/nls.m b/matlab/+pac/+estimate/nls.m index 779f10ab3..726b9953d 100644 --- a/matlab/+pac/+estimate/nls.m +++ b/matlab/+pac/+estimate/nls.m @@ -193,8 +193,8 @@ else case 'GaussNewton' % Nothing to do here. case 'lsqnonlin' - bounds = ones(length(params0),1)*[-10,10]; - bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.pacman.ec.params)),1) = .0; + bounds = ones(length(params0),1)*[-Inf,Inf]; + bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.(pacmodl).ec.params)),1) = .0; case 'fmincon' if isoctave error('Optimization algorithm ''fmincon'' is not available under Octave') @@ -202,8 +202,8 @@ else error('Optimization algorithm ''fmincon'' requires the Optimization Toolbox') end minalgo = 1; - bounds = ones(length(params0),1)*[-10,10]; - bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.pacman.ec.params)),1) = .0; + bounds = ones(length(params0),1)*[-Inf,Inf]; + bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.(pacmodl).ec.params)),1) = .0; case 'fminunc' if isoctave && ~user_has_octave_forge_package('optim') error('Optimization algorithm ''fminunc'' requires the optim package') @@ -224,8 +224,8 @@ else minalgo = 8; case 'annealing' minalgo = 2; - bounds = ones(length(params0),1)*[-10,10]; - bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.pacman.ec.params)),1) = .0; + bounds = ones(length(params0),1)*[-Inf,Inf]; + bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.(pacmodl).ec.params)),1) = .0; parameter_names = fieldnames(params); case 'particleswarm' if isoctave @@ -234,8 +234,8 @@ else error('Optimization ''particleswarm'' requires the Global Optimization Toolbox') end minalgo = 12; - bounds = ones(length(params0),1)*[-10,10]; - bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.pacman.ec.params)),1) = .0; + bounds = ones(length(params0),1)*[-Inf,Inf]; + bounds(strcmp(fieldnames(params), M_.param_names(M_.pac.(pacmodl).ec.params)),1) = .0; parameter_names = fieldnames(params); otherwise msg = sprintf('%s is not an implemented optimization routine.\n', optimizer);