Package: coder
Superclasses: coder.ArrayType
Represent set of MATLAB classes
Specifies the set of value class objects that the generated
code can accept. Use only with the codegen
-args
option.
Do not pass as an input to a generated MEX function.
Note
You can also create and edit coder.Type
objects
interactively by using the Coder Type Editor. See Create and Edit Input Types by Using the Coder Type Editor.
creates a t
= coder.typeof(value_class_object
)coder.ClassType
object for the object
value_class_object
.
creates
a t
= coder.newtype(value_class_name
)coder.ClassType
object for an object of the class value_class_name
.
|
Value class object from which to create the v = myValueClass; t = coder.typeof(v); t = coder.typeof(myValueClass(2,3)); |
|
Name of a value class definition file on the MATLAB® path. Specify as a character vector or string scalar. For example: t = coder.newtype('myValueClass'); |
When you create a coder.ClassType
object
t
from a value class object v
by using
coder.typeof
, the properties of t
are the same as the properties of v
with the
attribute Constant
set to false
.
Value. To learn how value classes affect copy operations, see Copying Objects.
Create a type based on an example object in the workspace.
Create a value class myRectangle
.
classdef myRectangle properties length; width; end methods function obj = myRectangle(l,w) if nargin > 0 obj.length = l; obj.width = w; end end function area = calcarea(obj) area = obj.length * obj.width; end end end
Create a function that takes an object of myRectangle
as
an input.
function z = getarea(r) %#codegen z = calcarea(r); end
Create an object of myRectangle
.
v = myRectangle(1,2)
v = myRectangle with properties: length: 1 width: 2
Create a coder.ClassType
object based
on v
.
t = coder.typeof(v)
t = coder.ClassType 1×1 myRectangle length: 1×1 double width : 1×1 double
coder.typeof
creates a coder.ClassType
object
that has the same properties names and types as v
has.
Generate code for getarea
. Specify
the input type by passing the coder.ClassType
object, t
,
to the -args
option.
codegen getarea -args {t} -report
coder.newtype
Create a coder.ClassType
object
for an object of the value class mySquare
by using coder.newtype
.
Create value class mySquare
that has
one property, side
.
classdef mySquare properties side; end methods function obj = mySquare(val) if nargin > 0 obj.side = val; end end function a = calcarea(obj) a = obj.side * obj.side; end end end
Create a coder.ClassType
type for mySquare
.
t = coder.newtype('mySquare')
Specify the type of side
.
t.Properties.side = coder.typeof(2)
After you create a coder.ClassType
,
you can modify the types of the properties. For example:
t = coder.typeof(myClass) t.Properties.prop1 = coder.typeof(int16(2)); t.Properties.prop2 = coder.typeof([1 2 3]);
After you create a coder.ClassType
,
you can add properties. For example:
t = coder.typeof(myClass) t.Properties.newprop1 = coder.typeof(int8(2)); t.Properties.newprop2 = coder.typeof([1 2 3]);
When you generate code, the properties of the coder.ClassType
object
that you pass to codegen
must be consistent with
the properties in the class definition file. However, if the class
definition file has properties that your code does not use, the coder.ClassType
object
does not have to include those properties. The code generator removes
properties that you do not use.
codegen
| coder
| coder.ArrayType
| coder.Constant
| coder.cstructname
| coder.EnumType
| coder.EnumType
| coder.FiType
| coder.newtype
| coder.PrimitiveType
| coder.resize
| coder.Type
| coder.typeof