Error running matlab from linux command line

19 vues (au cours des 30 derniers jours)
Ashley
Ashley le 17 Juil 2015
Réponse apportée : Ashley le 20 Juil 2015
I am running matlab on a remote server. Its far away and I do not want to run XORG. I run my start up no issues:
matlab -nosplash -nodisplay -nodesktop < linux_startup_robot.m
But when I run my main file to begin recording data like this:
matlab -nosplash -nodisplay -nodesktop < main.m
I get this error:
>> function main()
|
Error: Function definitions are not permitted in this context.
I know that this code works, when I run on a local machine its not an issue and everything runs as expected.
Please help.

Réponse acceptée

Ashley
Ashley le 20 Juil 2015
Thanks for getting back to me.
So this didn't work for me because it kind of opens matlab from the terminal. Then I struggle to get out and run the rest of my scripts that need the initialization script before that.
How I solved it was buy writing a m file that just called main so:
main_called.m literally just has:
main

Plus de réponses (1)

Steven Lord
Steven Lord le 17 Juil 2015
Don't pipe your function into MATLAB. Use the -r startup option instead.
matlab -nosplash -nodisplay -nodesktop -r why
If you want to execute multiple commands, wrap them in quotes.
matlab -nosplash -nodisplay -nodesktop -r "for k = 1:10, why, end"
matlab -nosplash -nodisplay -nodesktop -r "why, quit"
matlab -nosplash -nodisplay -nodesktop -r "rng('shuffle'), why, quit"
The reason piping worked for your first example is because your linux_startup_robot.m is a script file, not a function file. But -r will work to run scripts or functions, instantiate classes, or execute arbitrary code as above.

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by