主要内容

用类表示硬件

客观的

这个例子实现了一个表示光多路复用卡的类。这些卡通常有几个输入端口和一个输出端口。的MuxCard类通过端口名称和端口数据速率表示端口。多路复用卡的输出速率是输入端口数据速率的和。

为什么从int32派生

MuxCard类派生自int32类,因为32位整数表示输入端口数据速率。的MuxCard类的方法继承int32类,它简化了这个子类的实现。例如,数值数组索引和算术运算MuxCard对象的这些操作继承自int32类。

实现

下面是定义MuxCard类。注意,输入端口速率初始化int32类的一部分。

classdefMuxCard < int32属性InPutNames OutPutName结束属性(依赖= true)输出结束方法函数obj = MuxCard(inptnames, inptrates, outpname) obj = obj@int32(inptrates);obj。InPutNames = inptnames;obj。OutPutName = outpname;结束函数x = get.OutPutRate(obj) x = sum(obj);结束函数X = subsref(card, s)如果比较字符串(s (1) .type,“。”) base = subsref@int32(card, s(1));如果Isscalar (s) x = base;其他的X = subsref(base, s(2:end));结束其他的X = subsref(int32(card), s);结束结束结束结束

构造MuxCard对象

构造函数接受三个参数:

  • inptnames-输入端口名称的单元格数组

  • inptrates—输入端口速率向量

  • outpname—输出端口名称

omx = MuxCard({“inp1”“inp2”“inp3”“inp4”},[3 12 12 48],“outp”
omx = 1x4带有属性的MuxCard数组:InPutNames: {'inp1' 'inp2' 'inp3' 'inp4'} OutPutName: 'outp' OutPutRate: 75 int32 data: 3 12 12 48

调用int32的方法

使用一个MuxCard对象的数组int32值。例如,这个索引语句访问对象中的数据,以确定速率为的输入端口的名称12

omx.InPutNames (omx = = 12)
Ans = 'inp2' 'inp3'

索引语句生成一个逻辑数组索引:

Omx == 12
Ans = 0 1 10 0

索引的MuxCard对象访问int32输入端口速率向量:

omx (1:2)
Ans = 3 12

OutPutRate属性获取访问方法的使用总和输出端口速率之和:

omx。OutPutRate
Ans = 75

相关的话题