Is it possible to programmatically check whether MATLAB has been started with the "-sd" option?

1 view (last 30 days)
I have a program that needs to behave differently depending on whether MATLAB was started with the "-sd" option (sets initial working folder) or not. However, I cannot determine a way to programmatically check this.
dpb on 18 Sep 2022
TMW hasn't provided a link to the command line -- I see a couple alternatives...(I've not tried either, just possible approaches that come to mind at the moment).
  1. Use a batch file containing the startup command and have it set an environment variable that startup.m can check, or
  2. Write a mex command that returns the command line and use the -r option to dispatch it. I don't know that this will work or not...

Sign in to comment.

Accepted Answer

Jan on 18 Sep 2022
PID = feature('getpid');
[status, out] = system(sprintf('ps -p %d -o args', PID))
status = 0
out =
'COMMAND /MATLAB/bin/glnxa64/mvm/MATLAB -r setupcomputeserver -softwareopengl -desktop -appendlogfile /var/mlsedu/log/matlab.log '
Parsing the char vector out is not trival: E.g. he name of the logfile might contain the substring ' -sd '. Will masking substrings included in double quotes avoid such troubles?
Alternatively you can avoid -sd but use a dedicated function instead:
matlab -r "cd('/your/folder')"
  1 Comment
Andre Zeug
Andre Zeug on 20 Sep 2022
PID = feature('getpid');
[status, out] = system(sprintf('ps -p %d -o args', PID))
works excellent under Linux, but the windows equivalent
PID = feature('getpid');
[status, out] = system(sprintf('tasklist /FI "PID eq %d"', PID))
does not provide arguments.
matlab -r "cd('/your/folder')"
is an excellent Workaround.

Sign in to comment.

More Answers (0)


Find more on Startup and Shutdown in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by