主要内容

queuePriority

类: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;事件= [];结束结束结束
介绍了R2016a