Error running matlab from linux command line

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.

 채택된 답변

Ashley
Ashley 2015년 7월 20일

0 개 추천

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

추가 답변 (1개)

Steven Lord
Steven Lord 2015년 7월 17일

1 개 추천

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.

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

질문:

2015년 7월 17일

답변:

2015년 7월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by