call and run an external program in matlab under windows
89 次查看(过去 30 天)
显示 更早的评论
Does anybody have any idea about how to call and run an external program in matlab under windows? I want to call an external program in Matlab and this external program should read its input file in Matlab directory and then this external program should create the program's output file in Matlab directory.
0 个评论
回答(5 个)
Rick Rosson
2011-7-13
You can call an executable program from the command line using the exclamation point or the system command:
>> !hello
will cause Windows to execute the program hello.exe if there is such a file in the current directory or on the system path.
Alternatively:
>> system('hello');
will do the same thing.
HTH.
3 个评论
Chirag Gupta
2011-7-13
This really depends on you external program. If your external program takes the input file name as an argument, you should be able to do:
!myExternalProgram inputFile.txt
However, if your external program does not take input arguments, you basically have to provide an inetrface where 2 external applications can talk together (non trivial)
Ahmed Abed
2017-6-15
I have been in the same situation, you can try the following code: system('C:\folder\programme.exe C:\folder\file same.DAT'); this is just an example, you need to enter the path of your programme then the path of the file to be analised. this way worked fine with me, however, if the external programme needs a human interference after finishing the analysis, then you need to manually close the programme so you can complete your code, and this is exactly where I am stuck currently.
Aleksander
2013-5-13
Would it be possible to launch an program from matlab code without keeping in the matlab program. my issue is that when i launch it this way matlab will wait for the external program to close before it continues.
2 个评论
Kaustubha Govind
2013-5-13
Aleksander: If you're on Linux, I think adding an ampersand (&) to the end of your command should do what you need.
Hunter Pruett
2022-7-20
I am having this same issue. I am trying to open and run a LabView file, which I can do successfully with code from the following website (code follows):
https://www.mathworks.com/matlabcentral/answers/391119-how-can-you-call-a-labview-vi-from-matlab-script
e=actxserver('LabVIEW.Application');
vipath='C:\Users\NI\Desktop\test.vi';
vi=invoke(e,'GetVIReference',vipath);
!start C:\Users\NI\Desktop\test.vi
vi.Run;
The issue I have is that once the 'vi.Run' command has been executed, matlab waits until the LabView script is manually aborted before I can run any other code. I am controlling a servo from matlab and need the two to be running simultaneously. Anyone know if this is possible?
Cameron
2013-6-19
Can anybody add some go-by code on how I would type commands, send files, etc in the externally opened program? I want to run hyperterminal externally with Matlab and send/receive text automatically on teh opened serial port.
1 个评论
Walter Roberson
2016-8-9
You might need to modify the code to use _popen . See http://stackoverflow.com/questions/450865/what-is-the-equivalent-to-posix-popen-in-the-win32-api
Veronica Escobar Ruiz
2015-9-9
Hi Cenk OZAN, did you find a solution for your problem? I have the same issue. I tried, without success, the solutions above and also the solution below.
[status1,cmdout1]=system('explorer /select ,"InputFile.txt"')
[status2,cmdout2]=system('ExeProgram.exe','-echo')
Hope someone can help us.
0 个评论
Javier Valdes
2016-8-9
编辑:Walter Roberson
2016-8-9
I think that the keyinject function https://www.mathworks.com/matlabcentral/fileexchange/40001-keyinject could be useful to control that external application from MATLAB (if the external application has a named window).
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!