Running MATLAB with a shell script, redirecting stdin and stdout
9 次查看(过去 30 天)
显示 更早的评论
Let's say I have this MATLAB function
function a = testfun(in1, in2)
a=in1+in2;
disp(a);
I would like to have a shell script that runs on Cygwin as follows:
./testscript.sh < inputforfunction.txt > outputoffunction.txt
The input file would contain in1 and in2. After running this command, the output file will contain the result of running testfun(in1,in2), namely 3 if in1=1 and in2=2, for example.
What I have till now is:
#!/bin/sh
matlab -nodesktop -nosplash -r "try, testfun($1,$2); end; quit;"
Executing the below opens MATLAB's command window, prints 40, then exits.
./testscript.sh 23 17
However, I don't know how to redirect the input to a text file, save the printed output of the MATLAB function somewhere, then redirect it to the output file.
Thanks!
0 个评论
回答(2 个)
Walter Roberson
2013-3-23
If you want to accept inputs from a file that has been redirected, then you need to use input() to read from the file.
2 个评论
Walter Roberson
2013-3-23
编辑:Walter Roberson
2013-3-23
#!/bin/sh
matlab -nodesktop -nosplash -r "try; vs = input('','s'); v =sscanf(v, '%f'); testfun(v(1),v(2)); end; quit;"
OR
#!/bin/sh
read in1 in2
matlab -nodesktop -nosplash -r "try; testfun($in1,$in2); end; quit;"
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Install Products 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!