You can convert an object of one class to an object of another
class. A converter method has the same name as the class it converts
to, such as
double. Think of a converter method as
an overloaded constructor method of another class. The converter takes
an instance of its own class and returns an object of a different
Converters enable you to:
Use methods defined for another class
Ensure that expressions involving objects of mixed class types execute properly
Control how instances are interpreted in other contexts
Suppose that you define a
If you create a
double method for the
you can use it to call other functions that require inputs of type
p = polynomial(...); dp = double(p); roots(dp)
p is a polynomial object,
a method of the
polynomial class, and
a standard MATLAB® function whose input arguments are the coefficients
of a polynomial.
Classes defined in packages can have names that are a dot-separated
list of names. The last name is a class and preceding names are packages.
Name the conversion methods using the package qualifiers in the method
names. For example, a conversion method to convert objects of
objects of the
PkgName.PkgClass class uses this
classdef MyClass ... methods function objPkgClass = PkgName.PkgClass(objMyclass) ... end end end
You cannot define a converter method that uses dots in the name
in a separate file. Define package-class converters in the
When you make a subscripted assignment statement like:
A(1) = myobj;
MATLAB compares the class of the Right-Side variable to the class of the Left-Side variable. If the classes are different, MATLAB attempts to convert the Right-Side variable to the class of the Left-Side variable. To do this conversion, MATLAB first searches for a method of the Right-Side class that has the same name as the Left-Side class. Such a method is a converter method, which is similar to a typecast operation in other languages.
If the Right-Side class does not define a method to convert from the Right-Side class to the Left-Side class, MATLAB calls the Left-Side class constructor. passing it the Right-Side variable.
For example, suppose that you make the following assignments:
A(1) = objA; % Object of class ClassA A(2) = objB; % Object of class ClassB
MATLAB attempts to call a method of
If no such converter method exists, MATLAB software calls the
objB as an argument. If the
objB as an argument, then MATLAB returns
cell arrays to store
objects of different classes.