Создайте пользовательские настройки

Настройки обеспечивают способ программно сохранить, получить доступ, и изменить данные для текущего сеанса или через несколько сеансов. По умолчанию 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, которые они используют.

Имя

Значение

Функции, обращенные входные параметры

matlab.settings.mustBeStringScalarA

A массив строк с одним элементом.

isStringScalar

matlab.settings.mustBeLogicalScalarA

A является логическим с одним элементом.

islogical, isscalar

matlab.settings.mustBeNumericScalarA

A является числовым с одним элементом.

isnumeric, isscalar

matlab.settings.mustBeIntegerScalarA

A целое число с одним элементом.

isinteger, isscalar

mustBePositiveA

A > 0

gt, isreal, isnumeric, islogical

mustBeNonpositiveA

A <= 0

ge, isreal, isnumeric, islogical

mustBeFiniteA

A не имеет никакого NaN и никакой Inf элементы.

isfinite

mustBeNonNanA

A не имеет никакого NaN элементы.

isnan

mustBeNonnegativeA

A >= 0

ge, isreal, isnumeric, islogical

mustBeNegativeA

A < 0

lt, isreal, isnumeric, islogical

mustBeNonzeroA

A ~= 0

eq, isnumeric, islogical

mustBeNonemptyA

A не пусто.

isempty

mustBeNonsparseA

A не имеет никаких разреженных элементов.

issparse

mustBeNumericA

A isnumeric.

isnumeric

mustBeNumericOrLogicalA

A является числовым или логическим.

isnumeric, islogical

mustBeRealA

A не имеет никакой мнимой части.

isreal

mustBeIntegerA

A == floor(A)

isreal, isfinite, floor, isnumeric, islogical

Чтобы задать функцию валидации при создании установки, используйте '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.

Смотрите также

| | | | | |

Похожие темы