Get Matlab Startup directory
显示 更早的评论
Hello,
I use a batch script to start Matlab and set the startup directory via the -sd switch.
Example:
:: Matlab startup directory
set STARTUP_DIRECTORY=%USERPROFILE%\Documents\Matlab\R2019a_x64\MyDirectory
:: Matlab Executable
set MATLAB_EXECUTABLE=%ProgramFiles%\MATLAB\R2019a\bin\matlab.exe
:: start Matlab with specified startup directory
call "%MATLAB_EXECUTABLE%" -sd "%STARTUP_DIRECTORY%"
I use this procedure because I work with multiple Matlab configurations (Java classpath, Java library path, Matlab path) in each of the startup directories.
I have a setup script which collects all required information and stores the 3 Matlab configuration files (javaclasspath.txt, javalibrarypath.txt, pathdef.m) in the startup directory. To get that directory in the current Matlab session i used the following (dirty but working) code:
char(java.lang.System.getProperty('user.dir'));
But since Matlab 2019a, this line always returns:
'C:\Users\<UserName>\Desktop'
I have also tried the userpath command but unfortunately, this always returns the same directory, no matter which directory is specified as startup directory:
'C:\Users\<UserName>\Documents\MATLAB'
Maybe someone has got a solution or workaround for my problem?
Thank you,
Markus
回答(2 个)
Ben Cunningham
2019-4-17
编辑:Ben Cunningham
2019-4-17
You can use :
>> pwd
to return the present working directory in MATLAB.
You define your procedure as :
- I start Matlab with the modified startup directory (-sd switch)
- Now I change to another directory where my software is located e.g. D:\MyProject\MySoftware
- In this directory I execute a setup M script
Why not :
- I start Matlab with the modified startup directory (-sd switch)
- I save the startup directory to a variable
startDir = pwd
- Now I change to another directory where my software is located e.g. D:\MyProject\MySoftware
- In this directory I execute a setup M script
Your setup M script then uses the variable 'startDir' to copy the files as required.
3 个评论
Markus Aigner
2019-4-17
Ben Cunningham
2019-4-17
编辑:Ben Cunningham
2019-4-17
It seems to me that if the user is creating this start up directory, then why not use
startDir = uigetdir
in your script and let the user navigate to it.
Additionally, they could create the directory at the same time in the UI. I know it's not exactly what you're after.
Markus Aigner
2019-4-23
Markus Aigner
2019-4-17
编辑:Markus Aigner
2019-4-17
0 个投票
1 个评论
Ben Cunningham
2019-4-17
I've updated my answer - I think this does what you need?
类别
在 帮助中心 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!