Main Content

Overloading the disp Function

Display Methods

Subclassing matlab.mixin.CustomDisplay is the best approach to customizing object display. However, if you do not derive your class from matlab.mixin.CustomDisplay, overload the disp function to change how MATLAB® displays objects of your class.

MATLAB calls the display function whenever an object is referred to in a statement that is not terminated by a semicolon. For example, the following statement creates the variable a. MATLAB calls display, which displays the value of a in the command line.

a = 5
a =

display then calls disp.

Overloaded disp

The built-in display function prints the name of the variable that is being displayed, if an assignment is made, or otherwise uses ans as the variable name. Then display calls disp to handle the actual display of the values.

If the variable that is being displayed is an object of a class that overloads disp, then MATLAB always calls the overloaded method. MATLAB calls display with two arguments and passes the variable name as the second argument.

Relationship Between disp and display

MATLAB invokes the built-in display function when the following occur:

  • MATLAB executes a statement that returns a value and is not terminated with a semicolon.

  • There is no left-side variable, then MATLAB prints ans = followed by the value.

  • Code explicitly invokes the display function.

When invoking display:

  • If the input argument is an existing variable, display prints the variable name and equal sign, followed by the value.

  • If the input is the result of an expression, display does not print ans =.

MATLAB invokes the built-in disp function when the following occurs:

  • The built-in display function calls disp.

  • Code explicitly invokes disp.

For empty built-in types (numeric types, char, struct, and cell) the display function displays:

  • [] — for numeric types

  • "0x0 struct array with no fields." — for empty structs.

  • "0x0 empty cell array" — for empty cell arrays.

  • "0x0 empty char array" — for empty char arrays

  • "0x0 empty string array" — for empty string arrays

disp differs from display in these ways:

  • disp does not print the variable name or ans.

  • disp prints nothing for built-in types (numeric types, char, struct, and cell) when the value is empty.

Related Topics