Set Add-ons path using commands

Hi,
I'm interested in setting the Add-ons path using commands rather than going through the MATLAB preferences dialog. Is there a way to do this?
Thanks
Alan

Respuestas (1)

Henry Giddens
Henry Giddens el 30 de Sept. de 2017

1 voto

6 comentarios

aL
aL el 4 de Oct. de 2017
That doesn't control where add-ons are installed. It appears the MATLAB command: preferences('Add-Ons') always brings up the gui to let the user type/select the path. I want to script it so that it is set automatically.
Henry Giddens
Henry Giddens el 30 de Oct. de 2017
Oh sorry, I completely misread the question. I wonder if you've figured it out yet? Does this help?
https://undocumentedmatlab.com/blog/changing-system-preferences-programmatically
aL
aL el 30 de Oct. de 2017
Hi Henry,
Thanks for trying. Unfortunately Add-On preferences are not stored in that file. I actually have no idea where they are stored.
However, I did find a (rather unstable) solution. After hunting around in MATLAB functions for setting different preferences, I found a Settings/settings command (depending on which version of MATLAB). It returns a handle to MATLAB settings, though most of the properties are hidden. After some trial and error, I figured out how to change the Add-on path. However, I've also discovered that the ability to apply my solution is limited to the version of MATLAB. This is what I came up with for the different versions of MATLAB I have access to:
try
s = Settings;
try % R2016
set(s.matlab.addons,'InstallationFolder',addonpath)
catch % R2015
set(s.matlab.apps,'AppsInstallFolder',addonpath)
end
catch % R2017
s = settings;
s.matlab.addons.InstallationFolder.PersonalValue = addonpath;
end
John Harris
John Harris el 27 de Dic. de 2017
Editada: John Harris el 12 de Sept. de 2018
Thanks for that, aL! I was only needing to get the current value but running into the same problem. You saved me a lot of time!
For the S/s issue with settings, could you try out this command?
matlab.internal.getSettingsRoot
To clarify, for 2017b:
rootSettings = matlab.internal.getSettingsRoot
folder = rootSettings.matlab.addons.InstallationFolder.ActiveValue
returns these
rootSettings =
SettingsGroup with properties:
connector: [1×1 SettingsGroup]
Simulink: [1×1 SettingsGroup]
installedAddons: [1×1 SettingsGroup]
slhistory: [1×1 SettingsGroup]
folder =
'C:\Users\harrisj2\Documents\MATLAB\Add-Ons'
I don't have better solution for the change from 'AppsInstallFolder' to 'InstallationFolder' that you detected at R2016; the try/catch works well for that.
John Harris
John Harris el 4 de En. de 2018
One place the add-ons directory is stored, at least on Windows, is a matlab.settings file in the AppData folder. For example, mine is c:\users\username\AppData\Roaming\MathWorks\MATLAB\R2017b\matlab.settings with a key name of "InstallationFolder".
James Richard
James Richard el 20 de Mzo. de 2022
Editada: James Richard el 20 de Mzo. de 2022
So what's the solution to change the add-ons directory directly?
We have this to change the hardware support package directory.
matlabshared.supportpkg.setSupportPackageRoot
But why don't we have something like this?
matlab.internal.setSettingsRoot

Iniciar sesión para comentar.

Categorías

Más información sobre System Commands en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

aL
el 29 de Sept. de 2017

Editada:

el 20 de Mzo. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by