Перегрузка функции disp

Отображение методов

Разделение на подклассы matlab.mixin.CustomDisplay является лучшим подходом к настройке отображения объекта. Однако, если вы не выводите свой класс от matlab.mixin.CustomDisplay, перегружаете функцию disp, чтобы измениться, как MATLAB® отображает объекты вашего класса.

MATLAB вызывает функцию display каждый раз, когда объект упомянут в операторе, который не отключен точкой с запятой. Например, следующий оператор создает переменный a. MATLAB вызывает display, который отображает значение a в командной строке.

a = 5
a =
    5

display затем вызывает disp.

Перегруженный disp

Встроенная функция display распечатывает имя переменной, которая отображается, если присвоение сделано, или в противном случае использует ans в качестве имени переменной. Затем display вызывает disp, чтобы обработать фактическое отображение значений.

Если переменная, которая отображается, является объектом класса, что перегрузки disp, то MATLAB всегда вызывает перегруженный метод. MATLAB вызывает display с двумя аргументами и передает имя переменной в качестве второго аргумента.

Отношение Между disp и отображением

MATLAB вызывает встроенную функцию display когда:

  • MATLAB выполняет оператор, который возвращает значение и не отключен с точкой с запятой.

  • Нет никакой переменной левой стороны, затем MATLAB распечатывает ans =, сопровождаемый значением.

  • Код явным образом вызывает функцию display.

Когда вызвал display:

  • Если входной параметр является существующей переменной, display распечатывает имя переменной и знак "равно", сопровождаемый значением.

  • Если входной параметр является результатом выражения, отображение не распечатывает ans =.

MATLAB вызывает встроенную функцию disp когда:

  • Встроенные вызовы функции display disp.

  • Код явным образом вызывает disp.

Для пустых встроенных типов (числовые типы, char, struct и cell) display функционируют отображения:

  • [] — для числовых типов

  • "0x0 struct array with no fields." — для пустого structs.

  • "Empty cell array: 0-by-1" — для массивов пустой ячейки.

  • '' — для пустых массивов char

disp отличается от display этими способами:

  • disp не распечатывает имя переменной или ans.

  • disp ничего не распечатывает для встроенных типов (числовые типы, char, struct и cell), когда значение пусто.

Похожие темы

Была ли эта тема полезной?