exponenta event banner

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++ с помощью MATLAB ® Coder™

.
Представлен в R2017a