Reputation: 1346
I have matlab file matlab_param.m
function matlab_param(param1, param2)
disp(sprintf('param1 : %s', param1));
disp(sprintf('param2 : %s', param2));
And I want to have bash script bash_param.sh that look like
#!/bin/bash
echo $1
echo $2
./matlab_param.m $1 $2
I want to run this bashscirpt
./bash_param.sh hello world
and it will print
hello
world
param1 : hello
param2 : world
I googled for hours and couldn't find any exact solution for this. The closest one the I got so far is
matlab -nodesktop -nosplash -nodisplay -r "try, run ('./test_param.m'); end; quit"
which I need to hardcode all parameters.
Upvotes: 6
Views: 3295
Reputation: 16045
Did you try:
#!/bin/bash
echo $1
echo $2
matlab -nodesktop -nosplash -nodisplay -r "try, test_param('$1','$2'); end; quit"
Upvotes: 5
Reputation: 19870
If you want to be able to pass arguments to matlab function I'd recommend to create a simple shell script:
matlab -nodisplay -r "try, test_param('$1','$2'); end; exit"
Then you can run in unix:
$ sh test_param.sh hello world
Not sure although how to avoid the MATLAB header output and if it will be passed to pipe.
Upvotes: 2