Настройки обеспечивают способ программно сохранить, получить доступ, и изменить данные для текущего сеанса или через несколько сеансов. По умолчанию MATLAB® и другие продукты MathWorks® включают настройки, которые могут использоваться, чтобы получить доступ и изменить внешний вид и поведение инструментов. Например, MATLAB включает настройки, которые позволяют вам программно изменить шрифт для определенных инструментов кода.
Можно создать пользовательские настройки, чтобы сохранить и получить доступ собственным данным через сеансы. Например, можно создать настройки, чтобы сохранить местоположение важной папки в системе или отслеживать число раз, файл запущен.
Настройки организованы в группы. Группировка настроек облегчает находить определенную установку и также обеспечивает дополнительный контекст относительно того, для чего используется установка. Например, matlab.editor
группа настроек содержит все настройки, характерные для редактора MATLAB. Группы настроек организованы в более многочисленные группы, формируя дерево. Наверху дерева корневой групповой объект настроек.
Чтобы добавить новую группу настроек, используйте addGroup
функция. Например, создайте группу настроек mysettings
под корневым групповым объектом настроек.
s = settings;
addGroup(s,'mysettings');
s
s = 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