mustBeMember

Проверьте, что значение является представителем заданного набора

Синтаксис

Описание

пример

mustBeMember(value,S) выдает ошибку, если value не является представителем множества значений, заданных S. Значение множества значений, заданное как value должно быть учитывающим регистр, точным совпадением. mustBeMember не возвращает значение.

При использовании mustBeMember как функция валидации свойства или аргумента функции убедитесь, что значение свойства по умолчанию является представителем набора.

mustBeMember вызывает следующую функцию, чтобы определить, value является представителем множества значений, заданных S.

Поддержка классов: Все числовые классы, logical, char, и MATLAB® классы, которые перегружают ismember.

Примеры

свернуть все

Использование mustBeMember чтобы подтвердить, что первый вход является представителем множества значений, заданных вторым входом.

Проверьте, что вектор символов 'red' - представитель набора векторов символов, 'yellow', 'green', и 'blue'.

A = 'red';
B = {'yellow','green','blue'};
mustBeMember(A,B)
Error using mustBeMember (line 14)
Value must be a member of this set
    'yellow'
    'green'
    'blue'

Не удалось выполнить проверку из-за 'red' не является представителем набора. MATLAB возвращает сообщение об ошибке с указанием допустимых значений.

Этот класс ограничивает значение свойства определенным множеством значений.

Значение Prop1 должен быть 'yellow', 'green', или 'blue'.

classdef MyClass
   properties
      Prop1 {mustBeMember(Prop1,{'yellow','green','blue'})} = 'yellow'
   end
end

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

Создайте объект и присвойте значение его свойству.

obj = MyClass
obj.Prop1 = 'red';
Error setting 'Prop1' property of 'MyClass' class:
Value must be a member of this set
    'yellow'
    'green'
    'blue'

Не удалось выполнить проверку из-за 'red' не является представителем набора. MATLAB возвращает сообщение об ошибке с указанием допустимых значений.

Эта функция объявляет два входных параметров. Входные n должен быть скаляром, числовым значением и входным typename должен быть любым из векторов символов single или double.

function r = mbMember(n,typename)
    arguments
        n (1,1) {mustBeNumeric}
        typename {mustBeMember(typename,{'single','double'})} = 'single'
    end
    r = rand(n,typename);
end

Этот вызов функции использует значение для typename который не соответствует требованиям, определенным с mustBeMember и приводит к ошибке.

r = mbMember(5,'int32');
Error using mbMember
Invalid input argument at position 2. Value must be a member of this set:
    'single'
    'double'

Входные параметры

свернуть все

Значение для проверки, заданное как скаляр или массив из одного из следующих:

  • logical, string, char, или любой числовой класс

  • Логический массив, строковые массивы, cellstr, или числовой массив

  • Классы MATLAB, которые реализуют ismember

При использовании mustBeMember в качестве средства проверки свойств этот аргумент должен быть именем свойства, заданным без кавычек.

Пример: PropName {mustBeMember(PropName,{'High','Medium','Low'})} = 'Low'

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell
Поддержка комплексного числа: Да

Множество значений, которым value должны принадлежать, указанные как любой из следующих:

  • logical, string, char, или любой числовой класс

  • Логический массив, строковые массивы, cellstr, или числовой массив

  • Классы MATLAB, которые реализуют ismember

Пример: Свойство с массивом ячеек char векторы: PropName {mustBeMember(PropName,{'yellow','green','blue'})} = 'blue'

Пример: Свойство со строковыми массивами: PropName {mustBeMember(PropName,["yellow","green","blue"])} = "blue"

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell
Поддержка комплексного числа: Да

Совет

  • mustBeMember предназначен для использования в валидацию аргументов свойства и функции.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a