Перегрузка функции 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.

  • "0x0 empty cell array" — для массивов пустой ячейки.

  • "0x0 empty char array" — для пустых массивов char

  • "0x0 empty string array" — для пустых массивов string

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

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

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

Похожие темы