exponenta event banner

addSetting

Добавить новый параметр

Описание

пример

s = addSetting(parentgroup,name) добавляет новый параметр в указанную родительскую группу параметров и возвращает Setting объект, содержащий новый параметр. По умолчанию параметры не скрыты, что означает, что они отображаются в группе родительских параметров.

пример

s = addSetting(___,Name,Value) задание свойств с использованием одного или нескольких аргументов пары имя-значение. Например, 'PersonalValue',10 добавляет новый параметр с персональным значением 10. Укажите пары имя-значение после всех других входных аргументов.

Примеры

свернуть все

Создайте группу параметров и добавьте в нее новый параметр. Затем используйте значение параметра в коде.

Создание группы параметров mysettings.

s = settings;
addGroup(s,'mysettings');

Добавить параметр MyWorkAddress кому mysettings и дать ему значение.

addSetting(s.mysettings,'MyWorkAddress');
s.mysettings.MyWorkAddress.PersonalValue = '3 Apple Hill Drive';
s.mysettings.MyWorkAddress
ans = 
  Setting 'mysettings.MyWorkAddress' with properties:
       ActiveValue: '3 Apple Hill Drive'
    TemporaryValue: <no value>
     PersonalValue: '3 Apple Hill Drive'
      FactoryValue: <no value>

Отображение значения параметра.

fprintf("I work at %s.\n", s.mysettings.MyWorkAddress.ActiveValue)
I work at 3 Apple Hill Drive.

Используйте settings для доступа к корню дерева настроек. Затем создайте группу параметров, добавьте в нее новый скрытый параметр и используйте значение параметра в коде.

Создание скрытой группы параметров myhiddensettings.

s = settings;
newHiddenGroup = addGroup(s,'myhiddensettings','Hidden',true);

Добавить параметр MyHiddenWorkAddress кому myhiddensettings и дать ему значение. Обратите внимание, что новый параметр не отображается при отображении родительской группы параметров.

addSetting(newHiddenGroup,'MyHiddenWorkAddress','Hidden',true, ...
    'PersonalValue','1 Lakeside Campus Drive');
s.myhiddensettings
ans = 
  SettingsGroup 'myhiddensettings' with no properties.

Отображение значения скрытого параметра.

fprintf("I work at %s.\n", newHiddenGroup.MyHiddenWorkAddress.ActiveValue)
I work at 1 Lakeside Campus Drive.

Создайте параметр и укажите функцию для проверки ее значения.

Сначала создайте функцию проверки. numericValidationFcn это приводит к ошибке, если входные данные не являются числовыми.

function numericValidationFcn(x)
    errorMsg = 'Value must be numeric.'; 
    assert(isnumeric(x),errorMsg);
end

Создание группы параметров mysettings.

s = settings;
addGroup(s,'mysettings');

Добавить параметр MyNumericSetting кому mysettings и укажите функцию проверки numericValidationFcn.

addSetting(s.mysettings,'MyNumericSetting','ValidationFcn',@numericValidationFcn);

Теперь проверьте, работает ли функция проверки. Установка значения MyNumericSetting в нечисловое значение. Как и ожидалось, MATLAB ® выдает ошибку.

s.mysettings.MyNumericSetting.PersonalValue = 'Hello';
Unable to validate settings data. Error using numericValidationFcn (line 3)
Value must be numeric.

Входные аргументы

свернуть все

Группа родительских параметров для добавления к, указанная как SettingsGroup объект. Используйте settings для доступа к объекту корневой группы настроек и ко всем доступным группам настроек.

Имя добавляемого параметра, определяемого как вектор символа или скаляр строки. Если name уже существует в указанной группе настроек, MATLAB выдает ошибку.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: addSetting(a,'mySetting','PersonalValue',10,'Hidden',true) добавляет новую скрытую настройку с личным значением 10 в указанную родительскую группу параметров.

Персональное значение настройки, определяемое как данные MATLAB любого типа, кроме типов дескрипторов. Контейнеры данных, такие как массивы ячеек, структуры и объекты, содержащие дескрипторы, также не поддерживаются. Этот аргумент необходим при создании параметров только для чтения.

Скрытое состояние, указано как true или false.

Если установлено значение trueгруппы настроек и настройки внутри группы не отображаются, хотя они остаются доступными.

Состояние только для чтения, указанное как true или false. Когда true, личное или временное значение параметра не может быть изменено. PersonalValue требуется при создании параметров, доступных только для чтения.

Функция для проверки настройки, заданная как дескриптор функции. Если указано, функция используется для проверки значения параметра.

Дескриптор функции должен быть связан с функцией, которая принимает значение потенциальной настройки в качестве входного аргумента, не имеет выходных аргументов и выдает ошибку в случае сбоя проверки.

Дескриптор функции должен указывать на функцию на пути MATLAB. Дескрипторы анонимных или вложенных функций не поддерживаются.

Представлен в R2019b