Multistart lsqcurvefit with parallel processing on produces an error
2 次查看(过去 30 天)
显示 更早的评论
so I have a lsqcurvefit problem defined with a function and I run it with MultiStart to get a global minimum. Everything works perfectly fine if I have "useparallel" disabled. problem=createOptimProblem('lsqcurvefit','x0',x0,'objective',@myfunction,... 'lb',lb,'ub',ub,'xdata',xdata,'ydata',ydata,'options',options);
However, when I try parallel processing it gives me the error: "Attempted to access x0(1); index out of bounds because numel(x0)=0." x0 contains the parameters of my function to fit (which is a separate .m file). Apparently the input variables of my function are not available in the matlab workers. I tried to make x0 a global variable, but then I have the problem that the local values during fitting keep getting changed back to the global start value...
3 个评论
Matt J
2013-3-31
I could imagine that it gets confused to run the function file multiple times with multiple values for the same variable name x0
I can't imagine that. It's the whole point of MultiStart. You'll have to show more code or we'll just be guessing.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Global or Multiple Starting Point Search 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!