Running MATLAB with a shell script, redirecting stdin and stdout
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (2)
Walter Roberson
el 23 de Mzo. de 2013
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 comentarios
Walter Roberson
el 23 de Mzo. de 2013
Editada: Walter Roberson
el 23 de Mzo. de 2013
#!/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;"
Ver también
Categorías
Más información sobre Install Products en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!