MATLAB ® отображает информацию в окне команд, когда оператор, не завершенный точкой с запятой, возвращает переменную. Например, эта инструкция создает структуру с полем, содержащим число 7.
a.field1 = 7
MATLAB отображает имя переменной, класс и значение.
a =
struct with fields:
field1: 7MATLAB предоставляет определяемые пользователем классы с аналогичными функциональными возможностями отображения. Определяемые пользователем классы могут настраивать способ отображения объектов класса в MATLAB с помощью API, предоставляемого matlab.mixin.CustomDisplay класс. Чтобы использовать этот API, выведите класс из matlab.mixin.CustomDisplay.
MATLAB добавляет методы по умолчанию с именем disp и display для всех классов MATLAB, которые не реализуют собственные методы с этими именами. Эти методы не отображаются, но создают простой экран по умолчанию.
Простое отображение по умолчанию состоит из следующих частей:
Заголовок с именем класса и размерами для нескалярных массивов.
Список всех нескрытых общих свойств, отображаемых в порядке определения в классе.
Фактическое отображение зависит от того, является ли объект скалярным или нескалярным. Кроме того, существуют специальные дисплеи для скалярного дескриптора удаленного объекта и пустых массивов объектов. Объекты во всех этих состояниях отображаются по-разному, если у них нет свойств.
details создает подробный экран по умолчанию. Подробный экран добавляет следующие элементы к простому экрану:
Использование полных имен классов
Ссылка на handle класс, если объект является дескриптором
Ссылки на methods, events, и superclasses функции, выполняемые на объекте.
Пример отображения объектов в MATLAB см. в разделе Класс с отображением объектов по умолчанию.
MATLAB отображает свойства объектов, которые имеют открытый доступ и не скрыты (см. Атрибуты свойств). Унаследованные абстрактные свойства исключены из отображения. Если отображаемый объект является скалярным, также включаются все динамические свойства, присоединенные к объекту.
matlab.mixin.CustomDisplay предоставляет интерфейс, который можно использовать для настройки отображения объектов для данного класса. Чтобы использовать этот интерфейс, выведите класс из CustomDisplay:
classdef MyClass < matlab.mixin.CustomDisplay
CustomDisplay класс - HandleCompatible, так что вы можете использовать его в сочетании как со значением, так и с суперклассами дескрипторов.
Примечание
Вы не можете использовать matlab.mixin.CustomDisplay для получения пользовательского отображения классов перечисления.
CustomDisplay интерфейс не позволяет переопределить disp, display, и details. Вместо этого переопределите любую комбинацию методов настройки, определенных для этой цели.
Существует две группы методов, которые используются для настройки отображения объектов для класса:
Методы конструктора элементов позволяют создавать строки, используемые для стандартного отображения. Переопределите любой из этих методов для изменения соответствующих частей экрана.
Методы обработчика состояний вызываются для объектов в определенных состояниях, таких как скалярные, нескалярные и так далее. Переопределите любой из этих методов для обработки объектов в определенном состоянии.
Все эти методы имеют защищенный доступ и должны быть определены как защищенные в подклассе CustomDisplay (то есть Access = protected).
Есть три части, которые составляют стандартный экран объекта - верхний колонтитул, список свойств и нижний колонтитул
Например, здесь представлен стандартный вид объекта для containers.Map объект:

Отображение объекта по умолчанию не включает нижний колонтитул. Подробный экран предоставляет дополнительную информацию:

Можно настроить, как MATLAB отображает объекты в результате выражений, отображающих объекты в окне команд, таких как незавершенные инструкции, возвращающие объекты или вызывающие disp и display. Результаты, отображаемые при вызове details для объекта или массива объектов не изменяются CustomDisplay API.
Каждая часть отображения объекта имеет связанный метод, который собирает соответствующую часть отображения.
| Метод | Цель | Дефолт |
|---|---|---|
| Создайте текст, используемый для заголовка. | Возвращает значение |
| Определите, как и какие свойства отображаются, включая порядок, значения и группировку. | Возвращает массив |
| Создайте текст, используемый для нижнего колонтитула. | Существует два нижних колонтитула:
|
Существует четыре состояния объектов, влияющих на отображение объектов в MATLAB:
Допустимый скалярный объект
Массив нескалярных объектов
Пустой массив объектов
Скалярный дескриптор удаленного объекта
Каждое состояние объекта имеет связанный метод, который MATLAB вызывает всякий раз, когда отображаются объекты, находящиеся в этом конкретном состоянии.
| Метод обработчика состояния | Вызывается для объекта в этом состоянии |
|---|---|
displayScalarObject |
|
displayNonScalarObject |
|
displayEmptyObject |
|
displayScalarHandleToDeletedObject |
|
CustomDisplay класс предоставляет служебные методы, возвращающие строки, используемые в различных частях различных параметров отображения. Эти статические методы возвращают текст, упрощающий создание пользовательских отображений объектов.
Если дисплей компьютера не поддерживает гипертекстовое связывание, строки возвращаются без ссылок.
| Метод | Исходные данные | Продукция |
|---|---|---|
Допустимый массив объектов | Размеры объекта, преобразованные в | |
| Отображение заголовков и определенных групп свойств | |
Объект | Простое имя класса, связанное с документацией объекта | |
Ничего | Текст | |
Объект | Текст, содержащий фразу | |
Объект | Текст, содержащий имя связанного класса, ссылку на страницу дескриптора (если класс дескриптора) и | |
Ничего | Текст | |
Объект | Текст, содержащий имя связанного класса и фразу |