Borrar filtros
Borrar filtros

how to reduce the calculation time when calling a .exe file from a MATLAB function

1 visualización (últimos 30 días)
I'm going to use "gamultiobj" genetic algorithm multi objective function optimisation and in my objective function I call an .exe file instead of defining it directly in MATLAB. I tried two simple parabolic functions as my objectives (a given example in MATLAB help for gamultiobj). It takes 26 seconds when use objective functions defined in MATLAB, but when I call a .exe file which calculates same functions, it takes 21 minutes!! Is this normal? Is there any way to reduce the time? Will the time reduce if I convert my Fortran program to a MEX file and call this one instead of compiled .exe file?
  6 comentarios
Mohsen2015
Mohsen2015 el 29 de Jun. de 2015
exe is an executable file which I make by compiling ny fortran program and then call it from MATLAB as below:
function y = myfun(x)
%write the x data
xh = fopen('x.txt', 'w');
fprintf(xh, '%f %f\n', x);
fclose(xh);
%run your program
system('test3.exe');
%read the f data
fh = fopen('f.txt');
y = fscanf(fh, '%f %f');
fclose(fh);
end
but execution time to optimise "myfun(x)" with any procedure in MATLAB takes much more time than the case that I directly write the function in "myfun(x)".
Quy Nguyen
Quy Nguyen el 12 de Abr. de 2024
i have a project that generates exe files from matlab/guide. Instructions on how to reduce matlab exe application processing time

Iniciar sesión para comentar.

Respuestas (1)

Sean de Wolski
Sean de Wolski el 29 de Jun. de 2015
Without knowledge of how the exe works this is hard to answer.
One thing you might want to try, if you are calling the exe multiple times is parfeval in the Parallel Computing Toolbox. This will allow you to submit asynchronous calls to the exe and the file read in parallel so that it can be running multiple times concurrently. This won't speed up calling the exe but will allow you to call it more frequently.

Categorías

Más información sobre Fortran with MATLAB en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by