フィルターのクリア

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

1 回表示 (過去 30 日間)
Mohsen2015
Mohsen2015 2015 年 6 月 22 日
コメント済み: Quy Nguyen 2024 年 4 月 12 日
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 件のコメント
Mohsen2015
Mohsen2015 2015 年 6 月 29 日
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 2024 年 4 月 12 日
i have a project that generates exe files from matlab/guide. Instructions on how to reduce matlab exe application processing time

サインインしてコメントする。

回答 (1 件)

Sean de Wolski
Sean de Wolski 2015 年 6 月 29 日
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.

カテゴリ

Help Center および File ExchangeFortran with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by