通过实施适合你的类的运营商,您可以将您的类的对象融入MATLAB®语言。例如,包含数字数据对象可以定义像算术运算+
,*
,-
这样您就可以使用算术表达式这些对象。通过实现关系运算符,您可以使用条件语句,对象,如开关
和如果
声明。
您可以实现MATLAB运营商的工作与你的类的对象。为了实现运营商,定义相关类的方法。
每个操作员具有相关联的功能(例如,+运算符都有一个相关的plus.m
功能)。您可以通过创建具有适当名称的类方法来实现任何操作符。此方法可以执行与要实现的操作相适应的任何步骤。
对于运营商和相关的功能名称的列表,请参阅<一个href="//www.tianjin-qmedu.com/help/matlab/matlab_oop/implementing-operators-for-your-class.html" class="intrnllnk">MATLAB运营商和相关功能。
用户定义的类比内置类具有更高的优先级。例如,假设q
对象是类吗双
和p
是一个用户定义的类。这两个表达式生成的呼叫+
在该方法中用户定义的类,如果它存在:
q + P P + Q
此方法是否可以添加类的对象双
用户定义的类取决于你如何实现这个方法。
什么时候p
和q
是不同类的对象,MATLAB应用优先规则来确定使用哪种方法。
在方法调用对象优先提供MATLAB如何确定要调用哪个方法的信息。
重载操作符保留该操作符的原始MATLAB优先级。有关运算符优先级的信息,请参见<一个href="//www.tianjin-qmedu.com/help/matlab/matlab_prog/operator-precedence.html" class="a">运算符优先级。
该加法器
类实现另外通过定义这个类的对象+
方法。加法器
定义除对象的作为相加的numericData中
属性值。该+
方法构造并返回一个加法器
对象,其numericData中
属性值是增加的结果。
该加法器
类还实现了比运营商少(<
)通过定义LT
方法。该LT
方法中的每个对象进行比较的值之后返回一个逻辑值numericData中
属性。
classdef加法器属性numericData中结束方法功能obj =加法(val) obj。NumericData = val;结束功能r = + (obj1,obj2) a =双(obj1);b =双(methoda);加法器(a + b);结束功能d =双(OBJ)d = obj.NumericData;结束功能TF = LT(OBJ1,OBJ2)如果obj1.NumericData其他TF = FALSE;结束结束结束结束
采用双转换器可让您数值增加加法器
对象和执行另外的类的对象。
一个=加法器(1:10)
一个加法器=使用性能:numericData中:[1 2 3 4 5 6 7 8 9 10]
添加两个对象:
A + A
ANS =加法器与属性:numericData中:[2 4 6 8 10 12 14 16 18 20]
添加的对象与可转换为双任意值:
B = UINT8(255)+一
b =属性:NumericData: [256 257 258 259 260 261 262 263 264 265]
比较对象一个
和b
使用<
运营商:
A
ANS = 1
确保类提供实现类设计所需的任何错误检查。
下表列出了MATLAB操作符的函数名。要实现操作符来使用数组(标量扩展、向量化算术操作等),还可能需要修改索引和连接。使用此表中的链接可以找到每个函数的具体信息。
操作 |
方法来定义 |
描述 |
---|---|---|
|
|
二进制加法 |
|
|
二进制减 |
|
|
一元减 |
|
|
一元加 |
|
|
逐元素乘法 |
|
|
矩阵乘法 |
|
|
右元素方面的分工 |
|
|
左逐元素师 |
|
|
矩阵右除 |
|
|
矩阵左部 |
|
|
元素方面的力量 |
|
|
矩阵力量 |
|
|
少于 |
|
|
比...更棒 |
|
乐 (A,B) |
小于或等于 |
|
通用电器 (A,B) |
大于或等于 |
|
不 (A,B) |
不等于 |
|
EQ (A,B) |
平等 |
|
和 (A,B) |
逻辑与 |
|
或 (A,B) |
逻辑或 |
|
不 (一个) |
逻辑非 |
|
|
冒号运算符 |
|
|
共轭复数 |
|
|
矩阵转置 |
|
|
横向拼接 |
|
|
垂直串联 |
|
|
标引用 |
|
|
下标赋值 |
|
|
标指数 |