MATLAB® поддерживает два вида предопределенных имен:
Constant Properties
Перечисления
Используйте постоянные свойства когда это необходимо набор связанных постоянных значений, значения которых могут принадлежать различным типам (числовые значения, символьные строки, и так далее). Задайте свойства с постоянными значениями путем установки атрибута свойства Constant
. Ссылочные постоянные свойства по наименованию каждый раз, когда вам нужен доступ к тому особому значению.
Смотрите Define Class Properties с Постоянными значениями для получения дополнительной информации.
Используйте перечисления когда это необходимо, чтобы создать фиксированный набор имен, представляющих один тип значения. Используйте этот новый тип в нескольких местах, не переопределяя его для каждого класса.
Можно вывести классы перечисления от других классов, чтобы наследовать операции суперкласса. Например, если вы задаете класс перечисления, который разделяет MATLAB на подклассы числовой класс как double
или int32
, класс перечисления наследовал все математические и реляционные операции, которые MATLAB задает для тех классов.
Используя перечисления вместо символьных строк, чтобы представлять значение, такое как цвета ('red'
), может привести к большему количеству читаемого кода потому что:
Можно сравнить участников перечисления с ==
вместо того, чтобы использовать strcmp
Перечисления поддерживают информацию о типе, векторы char
не делают. Например, передавая вектор char
'red'
функциям означает, что каждая функция должна интерпретировать то, что означает 'red'
. Если вы задаете красный как перечисление, фактическое значение 'red'
может измениться (от [1 0 0]
до [.93 .14 .14]
, например), не обновляя каждую функцию, которая принимает цвета, как вы были бы, если вы задали цвет как вектор char
'red'
.
Задайте перечисления путем создания блока enumeration
в определении класса.
Смотрите Задают Классы Перечисления для получения дополнительной информации.
Перечисления позволяют вам задать имена, которые представляют сущности, полезные для вашего приложения, не используя числовые значения или символьные строки. Все перечисления поддерживают операции равенства и неравенства. Поэтому switch
, if
и несколько функций сравнения как isequal
и ismember
работают с участниками перечисления.
Можно задать классы перечисления способами, которые являются самыми полезными для приложения, как описано в следующих разделах.
Простые классы перечисления не имеют никаких суперклассов и никаких свойств. Эти классы задают набор связанных имен, которые не имеют никаких базовых значений, сопоставленных с ними. Используйте этот вид перечисления когда это необходимо описательные имена, но ваше приложение не запрашивает определенную информацию, сопоставленную с именем.
Смотрите класс WeekDays
в Классе Перечисления и Задавать Методы в разделах Классов Перечисления.
Классы перечисления, которые разделяют MATLAB на подклассы встроенные классы, наследовали большинство поведений тех классов. Например, класс перечисления, выведенный от класса double
, наследовал математические, реляционные, и операции присвоения, которые работают с переменными класса.
Перечисления не поддерживают двоеточие (:
) оператор, даже если суперкласс делает.
Классы перечисления, которые не разделяют MATLAB на подклассы встроенные числовые и логические классы, могут задать свойства. Эти классы могут задать конструкторов, которые устанавливают значения уникального свойства каждого участника.
Конструктор может сохранить входные параметры в значениях свойств. Например, класс Color
может задать цвет участника перечисления Red
с три (Красный, Зеленый, Синий) значения:
enumeration Red (1,0,0) end