exponenta event banner

Подклассы встроенных типов MATLAB

Встроенные типы MATLAB

Встроенные типы представляют фундаментальные виды данных, такие как числовые массивы, логические массивы и символьные массивы. Другие встроенные типы, такие как массивы и структуры ячеек, содержат данные, принадлежащие любому классу.

Встроенные типы определяют методы, выполняющие операции с объектами этих классов. Например, можно выполнять операции с цифровыми массивами, такими как сортировка, арифметические и логические операции.

Дополнительные сведения о встроенных классах MATLAB ® см. в разделе Основные классы MATLAB.

Примечание

Ошибка при определении класса с тем же именем, что и у встроенного класса.

Встроенные типы, которые можно включить в подкласс

Можно подкласс MATLAB числовых классов и logical класс. Список числовых типов см. в разделе Числовые типы.

Нельзя подкласс класса, который имеет Sealed атрибут имеет значение true. Чтобы определить, является ли класс Sealed, запрос метаданных класса:

mc = ?ClassName;
mc.Sealed

Значение 0 указывает, что класс не является Sealed и могут быть подклассами.

Почему встроенные типы подкласса

Подкласс встроенного класса для расширения операций, которые можно выполнить с определенным классом данных. Например, если необходимо:

  • Для выполнения уникальных операций с данными класса.

  • Уметь использовать методы встроенного класса и другие встроенные функции непосредственно с объектами подкласса. Например, не нужно повторять все математические операторы, если вы производны от класса, такого как double который определяет эти операторы.

Какие функции работают с подклассами встроенных типов

Рассмотрим класс, определяющий перечисления. Он может быть производным от целого класса и наследовать методы, позволяющие сравнивать и сортировать значения. Например, целочисленные классы, такие как int32 поддерживать все реляционные методы (eq, ge, gt, le, lt, ne).

Чтобы просмотреть список функций, унаследованных подклассом как методы, используйте methods функция:

methods('SubclassName')

Как правило, объект подкласса можно использовать с любым:

  • Наследуемые методы

  • Функции, обычно принимающие входные аргументы того же класса, что и суперкласс.

Поведение встроенных функций с объектами подкласса

При определении подкласса встроенного класса подкласс наследует все методы, определенные этим встроенным классом. MATLAB также предоставляет дополнительные методы подклассам встроенных классов, которые переопределяют несколько встроенных функций.

Встроенные функции и методы, работающие на встроенных классах, могут вести себя по-разному при вызове с подклассами встроенных классов. Их поведение зависит от того, какую функцию вы используете и определяет ли подкласс свойства.

Категории поведения

При вызове унаследованного метода в подклассе встроенного класса результат зависит от характера операции, выполняемой методом. Поведение этих методов укладывается в несколько категорий.

  • Операции со значениями данных возвращают объекты суперкласса. Например, если используется подкласс double и выполнить сложение двух объектов подкласса, MATLAB добавляет числовые значения и возвращает значение класса double.

  • Операции с ориентацией или структурой объектов возврата данных подкласса. Методы, которые выполняют эти виды операций, включают в себя: reshape, permute, transposeи так далее.

  • Преобразование объекта подкласса во встроенный класс возвращает объект указанного класса. Функции, такие как uint32, double, char работать с объектами подкласса так же, как и со встроенными объектами.

  • Сравнение объектов или тестирование на включение в определенный набор возвращает логические или встроенные объекты в зависимости от функции. Функции, такие как isequal, ischar, isobject работать с объектами подкласса так же, как с объектами суперкласса.

  • Выражения индексирования возвращают объекты подкласса. Если подкласс определяет свойства, индексирование по умолчанию больше не работает. Подкласс должен определять собственные методы индексирования.

  • Конкатенация возвращает объект подкласса. Если подкласс определяет свойства, то конкатенация по умолчанию больше не работает, и подкласс должен определять собственные методы конкатенации.

Для вывода списка встроенных функций, работающих с подклассом встроенного класса, используйте methods функция.

Встроенные подклассы, определяющие свойства

Когда подкласс встроенного класса определяет свойства, MATLAB больше не поддерживает операции индексирования и конкатенации. MATLAB не может использовать встроенные функции, обычно вызываемые для этих операций, поскольку свойства подкласса могут содержать любые данные.

Подкласс должен определять, что означает индексирование и конкатенация для класса со свойствами. Если подкласс нуждается в функциональности индексирования и конкатенации, то подкласс должен реализовать соответствующие методы.

Методы индексирования

Для поддержки операций индексирования подкласс должен реализовать следующие методы:

  • subsasgn - Реализация точечных обозначений и индексированных назначений

  • subsref - Реализация точечных обозначений и индексированных ссылок

  • subsindex - Реализовать объект как значение индекса

Методы конкатенации

Для поддержки конкатенации подкласс должен реализовать следующие методы:

  • horzcat - Реализовать горизонтальную конкатенацию объектов

  • vertcat - Реализовать вертикальную конкатенацию объектов

  • cat - Реализация конкатенации массивов объектов вдоль указанного размера

Связанные темы