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