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 = 5
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 callsdisp
.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 emptystructs
."0x0 empty cell array"
— for empty cell arrays."0x0 empty char array"
— for emptychar
arrays"0x0 empty string array"
— for emptystring
arrays
disp
differs from display
in these ways:
disp
does not print the variable name orans
.disp
prints nothing for built-in types (numeric types,char
,struct
, andcell
) when the value is empty.