Pass a parameter vector to an exe file

12 visualizaciones (últimos 30 días)
erasmo mancusi
erasmo mancusi el 1 de Dic. de 2011
Editada: dpb el 1 de Sept. de 2022
Hi to all, I have a exe file generated from fortran that I need to run in Matlab for different parameters. The exe file require that I input by keyboard the parameter and the option in matlab: system('myprogram.exe') (equivalently ! or dos or unix) work in the same way: need the input by the keyboard. Exist the possibility to pass the input in a different way? I have tried system('myprogram.exe PARAMETER') but doesn't work. Thank you in advance to all. erasmo
  1 comentario
Kaustubha Govind
Kaustubha Govind el 1 de Dic. de 2011
Did you mean that the executable prompts the user to enter the input? Or does it use command-line arguments? How would you provide the input from a system shell?

Iniciar sesión para comentar.

Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 1 de Dic. de 2011
try system('myprogram.exe < InputParameters.txt') where InputParameters.txt is a text file that you created ahead of time, just type in the parameters to the text file as if you are type it in command window, include the carriage return.
  2 comentarios
Kaustubha Govind
Kaustubha Govind el 1 de Dic. de 2011
Nice!
erasmo mancusi
erasmo mancusi el 1 de Dic. de 2011
Editada: dpb el 1 de Sept. de 2022
First of all I'd like to thank Jiang for his replay.
Then I share the solution:
fid = fopen('filename1', 'wt');
fprintf(fid, '%6f \n', state variables); %write out the input parameters the program will need
fprintf(fid, '%6f \n', PAR1); %write out the input parameters the program will need
system(['myprogram.exe < ' 'f.7']);%ruxecutable with content of fname as
% the myprogram.exe create a file named filenam2 where this program write the NDIM dtate variables and the new parameter (at each iteration the myprogram.exe close the file and then rewrite on it)
A = importdata('filename2'); % here I import the new data that will be re-assigned to filename1
statevariable=A(1:NDIM,1);
PAR1=A(NDIM+1,1);
fclose(fid);
thx
eramso

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by