Подклассы встроенных типов 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.

Встроенные подклассы, что Define Properties

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

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

Методы для индексации

Чтобы поддержать операции индексации, подкласс должен реализовать эти методы:

  • subsasgn Реализуйте запись через точку и индексированные присвоения

  • subsref Реализуйте запись через точку и индексированные ссылки

  • Объект subsindex — Implement как индексное значение

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

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

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

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

  • \cat Реализуйте конкатенацию массивов объектов в заданном измерении

Похожие темы