L-BFGS-B with function calculated by commercial software
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
When I search "L-BFGS-B matlab", I find way too many options to choose from. I run a commercial FORTRAN binary twice, and the difference between the two output numbers is what I want to optimize. Therefore I need MATLAB to call the commercial FORTRAN binary twice (via two separate input files), parse the output files for the relevant numbers, and feed the difference between these two numbers into an L-BFGS-B routine.
How would I go about solving this problem?
4 commentaires
Walter Roberson
le 22 Sep 2017
tfile = tempname();
fid = fopen(tfile, 'wt')
fprintf(fid, 'commands for\n')
fprintf(fid, 'program input go here\n');
fclose(fid)
cmd = sprintf('"%s" -i "%s"', 'C:\Some\Directory\NameOfCommercialProgram.exe', tfile );
[status, result] = system(cmd);
result_numeric = sscanf(result);
repeat for the second call but with different output variables, then call L-BFGS-B with the difference between the numeric results.
Réponses (0)
Voir également
Catégories
En savoir plus sur Fortran with MATLAB dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!