! or system() or unix() - input redirection
显示 更早的评论
I am trying to execute a system command from within Matlab (there is no input or output from/to Matlab, I just need it to call the program and wait).
./forward < input
This works fine in a bash terminal (MACI64), but not from Matlab. I have tried,
!./forward < input
system('./forward < input')
and
unix('./forward < input')
Each time, the input file is ignored.
(I also tried making a shell script containing the full command, but the extra input was still ignored. Also, if I change the name of the input file to one that doesn't exist (e.g. input_null, I get the following error: "/bin/bash: input_null: No such file or directory")
Is there any way to make this work?
thanks.
PS, simpler commands like
!grep -i string < input
work fine from Matlab
3 个评论
Walter Roberson
2012-7-24
The program you are trying to run -- was it compiled in gfortran ?
Ben Ward
2012-7-24
采纳的回答
更多回答(1 个)
Walter Roberson
2012-7-24
0 个投票
Please have a look at http://www.mathworks.co.uk/matlabcentral/answers/43640-a-peculiar-problem-when-using-system-command-to-run-a-c-shell-script-from-matlab and at http://www.mathworks.co.uk/matlabcentral/answers/38589-system-or-unix-command-run-compiled-fortran-binary-fails-but-it-runs-fine-from-a-terminal
5 个评论
Ben Ward
2012-7-24
编辑:Walter Roberson
2015-11-29
Walter Roberson
2012-7-24
The thread that had the stderr issue happened to be the first and most detailed of a series dealing with I/O problems with executables compiled with gfortran when used under R2012a . The problem likely is not restricted to stderr.
The reports have been against various operating systems; the library problems might only occur on some of them.
I would recommend contacting Mathworks about this issue; perhaps they have a work-around by now. But in the meantime, it appears that using a different compiler such as g77 makes a difference.
Ben Ward
2012-7-24
Walter Roberson
2012-7-24
Interesting work-around.
类别
在 帮助中心 和 File Exchange 中查找有关 Fortran with MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!