Существуют функции, которые MATLAB® вызывает неявно, когда вы выполняете определенные действия с объектами. Для примера такое заявление, как [B(1);A(3)] осуществляют индексацию ссылки и вертикальную конкатенацию.
Можно изменить поведение пользовательских объектов путем определения методов, которые управляют конкретным поведением. Чтобы изменить поведение, реализуйте соответствующий метод с именем и подписью функции MATLAB.
В следующей таблице перечислены методы реализации для вашего класса и описаны поведения, которое они контролируют.
Метод класса для реализации | Описание |
|---|---|
Конкатенация объектов | |
cat, horzcat, и vertcat | Настройте поведение при конкатенации объектов |
Создание пустых массивов | |
| Создайте пустые массивы указанного класса. Смотрите пустые массивы | |
Отображение объектов | |
Вызывается при вводе Вызываются операторами, которые не оконечны точками с запятой. | |
Преобразование объектов в другие классы | |
Преобразуйте объект во встроенный класс MATLAB Смотрите Преобразователь Символов и Двойной Преобразователь | |
Объекты индексации | |
Позволяет вам создать нестандартную индексированную ссылку и индексированное назначение | |
Поддерживает Смотрите конец как индекс объекта | |
Определите количество элементов в массиве Смотрите Изменение nargout и nargin для Методов индексирования | |
Перегрузка, чтобы указать количество значений, возвращаемых из выражений индексации. | |
Определите размерности массива | |
Поддержка с использованием объекта в индексации выражений Смотрите объекты в индексных выражениях | |
Сохранение и загрузка объектов | |
loadobj и saveobj | Настройте поведение при загрузке и сохранении объектов Смотрите Сохранение и загрузку объекта |
Перестроить и переставить | |
Переставьте размерности N-D массива | |
Транспонирование вектора или матрицы | |
Комплексная сопряженная транспозиция | |
Перестроить массив | |
| Репликация массива с заданными измерениями | |
Определите размер и форму | |
Определите, является ли вход скаляром | |
Определите, является ли вход вектором | |
Определите, является ли вход матрицей | |
Определите, пуст ли вход | |
Перегрузка и переопределение являются терминами, которые описывают методы настройки поведения класса. Вот как мы используем эти термины в MATLAB.
Перегрузка означает, что существует несколько функций или методов, имеющих то же имя в одной возможности. MATLAB отправляет конкретную функцию или метод на основе доминирующего аргумента. Для примера, timeseries класс перегружает MATLAB plot функция. Когда вы звоните plot с timeseries MATLAB вызывает объект как входной параметр timeseries метод класса с именем plot.
Чтобы вызвать неперегруженную функцию, используйте builtin функция.
Переопределение означает переопределение метода, унаследованного от суперкласса. MATLAB отправляет самую конкретную версию метода. То есть, если доминирующий аргумент является объектом подкласса, то MATLAB вызывает подкласс метода.
Чтобы контролировать доминирование классов, используйте InferiorClasses атрибут.