Running MATLAB with a shell script, redirecting stdin and stdout
12 ビュー (過去 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!