run matlab function with arguments on linux terminal

88 次查看(过去 30 天)
Hello, do you have any idea how to run matlab functions from the linux shell specifying their arguments? what i tried was: { matlab -r myfunction(argument1,argument2) } but it doesn't work oO
  2 个评论
Yekaterina Gilbo
Yekaterina Gilbo 2017-7-14
Hi Ayoub, what is the purpose of the "-r" and also how do you know what to even type on the terminal (what should I look up for this?) Thanks!

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2012-5-22
matlab -r 'myfunction(argument1,argument2)';
Or safer:
matlab -r 'try myfunction(argument1,argument2); catch; end; quit'

更多回答(4 个)

Thomas
Thomas 2012-5-22
Adding to Walter's answers above..
you could also try
matlab -r -nodisplay -nojvm 'myfunction(argument1,argument2)';
-no display removes the Xdisplay and -nojvm starts matlab without hte Java virtual machine.
you could also try
matlab -r -nodesktop -nojvm 'myfunction(argument1,argument2)';
or use the abovewith the try-catch loop as suggested by Walter..

USMAN
USMAN 2014-7-15
I would rearrange the sequence of input arguments as follows:
matlab -nodisplay -nojvm -r 'FunctionName Arg1 Arg2; exit;'
exit will also exit Matlab and bring control back to shell

Ayoub
Ayoub 2012-5-29
thankyou guys :)

Martina Audagnotto
Martina Audagnotto 2018-5-21
编辑:Walter Roberson 2018-5-22
Hi,
I have a similar question regarding running matlab with arguments on linux terminal. I want to run my matlab code on GPU and if I set the number of GPU manually the code run, while if i give the number of GPU as a variable of my function I get the following error:
Not enough input arguments.
This is how I run the function:
matlab -nodesktop -r "nodes=2; averaging_filament='single_filament_averaging_reikaparam_is40'; folder='polarity_TRIAL'; run streamline_tomo_GPU.m" ;
and inside the code:
GPU=[nodes];
No idea why is it not running :(
  3 个评论
Lucademicus
Lucademicus 2019-6-20
According to the matlablinux documentation, you should not use the option
-r
but instead use the option
-batch
I've tested this on MATLAB R2018b.
The command
matlab -nodisplay -nojvm -r 'somefunction(someargument); anotherfunction(anotherargument);'
did not run anotherfunction(). It did when I changed -r to -batch!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by