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 в разделах Enumeration Class и Define Methods in Enumeration Classes.
Классы перечисления, которые являются подклассами встроенных классов MATLAB, наследуют большинство вариантов поведения этих классов. Например, класс перечисления, полученный из double класс наследует математические, реляционные операции и операции набора, которые работают с переменными класса.
Перечисления не поддерживают двоеточие (:), даже если суперкласс это делает.
Классы перечисления, не являющиеся подклассами встроенных числовых и логических классов MATLAB, могут определять свойства. Эти классы могут определять конструкторы, задающие уникальные значения свойств каждого члена.
Конструктор может сохранять входные аргументы в значениях свойств. Например, Color класс может указывать Red цвет элемента перечисления с тремя значениями (красный, зеленый, синий):
enumeration Red (1,0,0) end