类:matlab。DiscreteEventSystem
包:matlab
定义优先级队列存储
存储= queuePriority (entityType、能力、关键,顺序)
定义优先级队列,按自定义属性对实体进行排序。的时候使用这个函数存储
= queuePriority (entityType
,能力
,关键
,订单
)getEntityStorageImpl
方法。
将存储元素定义为优先级队列。
将存储元素定义为优先队列% -队列使用实体的特定属性对实体进行排序% -队列可以存储类型为“myEntity”的实体% -队列只能存储不超过25个实体% -队列使用“年龄”属性对实体进行排序% -排序方向是'升序',结果实体%较小的“age”属性值出现在队列前面存储= obj.queuePriority (“myEntity”25岁的“年龄”,“提升”);
在本例中,自定义块允许实体通过其输入端口输入其存储元素。存储元素是一个优先级队列,它根据实体的属性对其进行排序直径
属性按升序排列。块存储中的每个实体条目都调用一个迭代事件来显示存储中每个实体的直径和位置。
有关更多信息,请参见使用迭代事件创建自定义实体存储块。
classdefCustomEntityStorageBlockIteration < matlab。DiscreteEventSystem一个自定义的实体存储块,有一个输入端口和一个存储元素。% Nontunable属性属性(Nontunable)%的能力能力= 5;结束%创建具有一个输入和一个存储的存储元素。方法(访问=保护)函数num = getNumInputsImpl(obj) num = 1;结束函数num = getNumOutputsImpl(obj) num = 0;结束函数entityTypes = getEntityTypesImpl(obj)“轮”);entityTypes = entityType1;结束函数[inputTypes,outputTypes] = getEntityPortsImpl(obj) inputTypes = {“轮”};outputTypes = {};结束函数[storageSpecs, I, O] = getEntityStorageImpl(obj)“轮”obj。能力,“直径”,“提升”);I = 1;O = [];结束结束%实体条目事件动作方法函数[entity, event] = WheelEntry(obj,storage,entity, source)% Entity条目调用迭代事件。事件= obj.eventIterate (1,'');结束% itarate事件动作函数(实体、事件、下)= WheelIterate (obj、存储实体,标签,cur)%显示轮子id,在存储器中的位置和直径。coder.extrinsic (“流”);流('车轮id %d,当前位置%d,直径%d\n',...entity.sys。id、cur.position entity.data.Diameter);如果fprintf(curt .size == curt .position‘迭代结束\n’)结束下一个= true;事件= [];结束结束结束