MATLAB® поддерживает два вида предопределенных имен:
Постоянные свойства
Перечисления
Используйте свойства константы, когда необходимо создать набор связанных значений константы, которые могут принадлежать различным типам (числовым значениям, символьным строкам и так далее). Задайте свойства с постоянными значениями путем установки свойства Constant
атрибут. Ссылка на свойства константы по имени всякий раз, когда вам нужен доступ к этому конкретному значению.
Дополнительные сведения см. в разделе «Определение свойств классов с постоянными значениями».
Используйте перечисления, когда необходимо создать фиксированный набор имен, представляющих один тип значения. Используйте этот новый тип в нескольких местах, не переопределяя его для каждого класса.
Можно вывести классы перечисления из других классов, чтобы наследовать операции суперкласса. Например, если вы задаете класс перечисления, который подклассифицирует числовой класс 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 числовые и логические классы, могут задавать свойства. Эти классы могут задавать конструкторы, которые задают уникальные значения свойств каждого представителя.
Конструктор может сохранять входные параметры в значениях свойств. Для примера, a Color
класс может задать Red
цвет представителя перечисления с тремя значениями (красный, зеленый, синий):
enumeration Red (1,0,0) end