Jessada Thutkawkorapin
Jessada Thutkawkorapin

Reputation: 1346

What is the closest way to pass string arguments from bash script to matlab file?

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

Answers (2)

Oli
Oli

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

yuk
yuk

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

Related Questions