Very useful interface to a useful tool! Without too much extra work, I was able to get the sources compiled and running under R2008b on OSX using gfortran. I just wish there was a 64-bit capable version I could compile for use on the new 64-bit R2009b for the Mac.
I am very happy with this submission. I have probably misunderstood something though, but isn't it possible to stop optimization before maxiter if the function has been optimized within a user-defined threshold? Currently I am only tuning maxiter to achieve proper results but I suspect I am loosing a lot of processing time and accuracy when a fixed maxiter is insufficient (either too many or too few).
I added this bit of code to startmulticoremaster so that it automatically starts the appropriate amount of slaves (make sure your path is setup properly so that it can find startmulticoreslave.m upon startup):
% Start slaves:
max_instances = 4;
[status,result] = system('tasklist /FI "imagename eq matlab.exe" /fo table /nh');
currently_running = length(strfind(result,'MATLAB.exe'));
for i = 1:(max_instances-currently_running)
!"C:\Program Files\MATLAB\R2013b\bin\matlab.exe" -nodisplay -nosplash -nodesktop -r "run('startmulticoreslave.m');exit;"
Thanks for that. I'll look more closely at a wrapper. I did one for "cmaes", maybe I can do one for optimize.
I want my "variables" to change by at list 0.01 because they are "physical" dimensions in millimetres of something I am designing. For my cost-fucntion, a variable that changes by less than 0.01mm will not change the value of the cost-function as I round off to two decimal points in the analysis as my manufacture accuracy is at best 0.01mm, but more line 0.02mm (20 microns) in real life. I'm designing hardware :)
Thanks for taking the time to look at my question. Much appreciated...