Параметры позволяют программно хранить, получать доступ и изменять данные для текущего сеанса или нескольких сеансов. По умолчанию MATLAB ® и другие продукты MathWorks ® включают параметры, которые можно использовать для доступа и изменения внешнего вида и поведения инструментов. Например, MATLAB включает параметры, позволяющие программно изменять шрифт для определенных инструментов кода.
Можно создать пользовательские параметры для хранения собственных данных и доступа к ним в сеансах. Например, можно создать параметры для сохранения расположения важной папки в системе или отслеживания количества запусков файла.
Настройки организованы в группы. Группирование настроек упрощает поиск определенной настройки, а также предоставляет дополнительный контекст относительно того, для чего она используется. Например, matlab.editor группа настроек содержит все настройки, специфичные для редактора MATLAB. Группы настроек организованы в большие группы, образуя дерево. В верхней части дерева находится объект корневой группы настроек.

Чтобы добавить новую группу параметров, используйте addGroup функция. Например, создайте группу параметров mysettings под объектом корневой группы настроек.
s = settings;
addGroup(s,'mysettings');
ss =
SettingsGroup with properties:
matlab: [1×1 SettingsGroup]
mysettings: [1×1 SettingsGroup]
mldrivetripwireaccess: [1×1 SettingsGroup]Чтобы создать скрытую группу параметров, которая не отображается в иерархии параметров, например, при отображении родительской группы параметров, укажите 'Hidden' пара имя-значение. Скрытые группы параметров не отображаются в родительской группе параметров, но доступны программно. Например, создайте группу параметров myhiddensettings внутри mysettings. Обратите внимание, что myhiddensettings не отображается в mysettings.
addGroup(s.mysettings,'myhiddensettings','Hidden',true); s.mysettings
ans = SettingsGroup 'mysettings' with no properties.
Чтобы удалить группу параметров, используйте removeGroup функция. Например, удалить myhiddensettings.
removeGroup(s,'myhiddensettings');Чтобы добавить новый параметр, используйте addSetting функция. Например, добавьте параметр MyWorkAddress в mysettings группа настроек.
s = settings; addGroup(s,'mysettings'); addSetting(s.mysettings,'MyWorkAddress');
Примечание
Добавление параметров непосредственно в корневую группу параметров не поддерживается.
Создав параметр, можно присвоить ему значение. Параметр имеет несколько различных типов значений, которые позволяют задать значение только для текущего сеанса или для нескольких сеансов для отдельного пользователя. Дополнительные сведения об этих типах значений см. в разделе Параметры доступа и изменения.
Чтобы задать значение параметра, задайте его личное или временное значение. Невозможно указать заводское значение для пользовательского параметра. Например, укажите личное значение для MyWorkAddress.
s.mysettings.MyWorkAddress.PersonalValue = '3 Apple Hill Drive';Затем в коде можно использовать значение настройки программно.
fprintf('I work at %s.\n', s.mysettings.MyWorkAddress.ActiveValue)I work at 3 Apple Hill Drive.
Чтобы добавить скрытый параметр, используйте 'Hidden' аргумент пары имя-значение. Скрытые настройки не отображаются в иерархии настроек, например, при отображении родительской группы настроек, но доступны программно. Например, добавьте скрытый параметр MyHiddenWorkAddress в mysettings настройка группы и установка ее персонального значения.
addSetting(s.mysettings,'MyHiddenWorkAddress','Hidden',true, ... 'PersonalValue','1 Lakeside Campus Drive');
Можно также добавить параметры только для чтения с помощью 'ReadOnly' аргумент пары имя-значение. После создания параметра только для чтения изменить его временное или личное значение невозможно. Поэтому при добавлении параметра необходимо указать его личное значение. Например, добавьте параметр только для чтения MyBirthDate в mysettings группа параметров с указанным личным значением.
mydate = datetime('6/1/1990','InputFormat','MM/dd/uuuu'); addSetting(s.mysettings,'MyBirthDate','ReadOnly',true,'PersonalValue',mydate);
Можно наложить определенные ограничения на значения параметров, указав функцию проверки для параметра или группы. Функция проверки принимает значение потенциального параметра в качестве аргумента и выдает ошибку, если значение не соответствует определенному требованию.
MATLAB определяет несколько полезных функций проверки, которые можно использовать для проверки параметров настройки. В этой таблице перечислены эти функции, их значения и используемые ими функции MATLAB.
Имя | Значение | Функции, вызываемые на входах |
|---|---|---|
| ||
| ||
| ||
| ||
| ||
| ||
|
| |
|
| |
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
| |
|
Чтобы указать функцию проверки при создании параметра, используйте 'ValidationFcn' аргумент пары имя-значение и укажите дескриптор функции. Например, добавьте параметр MyLogicalSetting в mysettings и укажите, что его значение должно быть логическим скаляром.
s = settings; addGroup(s,'mysettings'); addSetting(s.mysettings,'MyLogicalSetting','ValidationFcn',@matlab.settings.mustBeLogicalScalar);
Попробуйте установить значение MyLogicalSetting к нелогичному значению. MATLAB возвращает ошибку.
s.mysettings.MyLogicalSetting.PersonalValue = 10;
Error setting 'MyLogicalSetting' in group 'mysettings': Value must be logical or convertible to logical.
Можно также указать функцию проверки для всей группы параметров настройки. При указании функция проверки используется для проверки значений всех настроек в группе, для которых не определены собственные функции проверки. Например, создайте группу параметров mylogicalsettings и укажите функцию проверки matlab.settings.mustBeLogicalScalar.
addGroup(s.mysettings,'mylogicalsettings','ValidationFcn',@matlab.settings.mustBeLogicalScalar);
Создание настройки MyLogicalSetting в пределах mylogicalsettings и попробуйте установить значение параметра в нелогическое значение. MATLAB возвращает ошибку.
addSetting(s.mysettings.mylogicalsettings,'MyLogicalSetting');
s.mysettings.mylogicalsettings.PersonalValue = 10;Error setting 'MyLogicalSetting' in group 'mysettings': Value must be logical or convertible to logical.
Также можно создать собственные функции проверки. Они могут проверять свойства, которые не охвачены функциями проверки MATLAB. Функции проверки - это обычные функции MATLAB, предназначенные для проверки значений параметров настройки. Они должны:
Примите значение потенциального параметра в качестве входного аргумента.
Нет выходных аргументов.
Выдать ошибку в случае сбоя проверки.
Разместите функции проверки на пути MATLAB, чтобы сделать их доступными.
Например, создайте функцию для проверки того, является ли значение параметра числовым.
function numericValidationFcn(x) errorMsg = 'Value must be numeric.'; assert(isnumeric(x),errorMsg); end
Добавьте функцию проверки к новому параметру.
s = settings; addGroup(s,'mysettings'); addSetting(s.mysettings,'MyNumericSetting','ValidationFcn',@numericValidationFcn);
Установка значения MyNumericSetting в нечисловое значение. MATLAB возвращает ошибку.
s.mysettings.MyNumericSetting.PersonalValue = 'Hello';Unable to validate settings data. Error using myvalidationFcn (line 3) Value must be numeric.
Можно также создать пользовательские функции проверки для использования функций проверки MATLAB, которые требуют нескольких входных данных, таких как mustBeGreaterThan, mustBeLessThan, mustBeGreaterThanOrEqual, mustBeLessThanOrEqual, и mustBeMember. Например, эта функция проверяет, является ли значение параметра одним из четырех цветов.
function colorValidationFcn(val) mustBeMember(val, ['Black' 'Blue' 'Yellow' 'Green']); end
Дополнительные сведения о добавлении функции проверки в группу параметров см. в разделе addSetting и addGroup.
addGroup | addSetting | hasGroup | hasSetting | removeGroup | removeSetting | settings