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