主要内容

eventIterate

类:matlab。DiscreteEventSystem
包:matlab

创建实体迭代事件

语法

事件= eventIterate (storageID、标签、优先级)

描述

事件= eventIterate (storageID标签优先级创建事件以重复处理存储元素的实体。然后,您可以通过在实现事件操作方法(例如)时将其作为输出参数返回来调度此事件退出

输入参数

全部展开

存储元素的索引。该存储元素中的实体将被迭代。

此实体迭代事件的自定义标记。

实体迭代事件的优先级。该值必须为正整数,值越小表示事件优先级越高。

输出参数

全部展开

处理特定存储元素实体的事件。

例子

迭代存储元素的实体

定义一个事件来迭代存储元素的实体。

函数事件=出口(obj、存储实体,dst)定义一个事件来迭代存储元素的实体%—该事件与存储元素2有关% -事件有一个自定义标签'search'% -事件将在当前模拟时钟时间执行%—该事件的优先级为10(较小的数值)%表示更高的事件优先级)事件= obj.eventIterate (2“搜索”10);结束

带有迭代事件的自定义实体存储块

在本例中,自定义块允许实体通过其输入端口输入其存储元素。存储元素是一个优先级队列,它根据实体的属性对其进行排序直径属性按升序排列。块存储中的每个实体条目都调用一个迭代事件来显示存储中每个实体的直径和位置。

有关更多信息,请参见使用迭代事件创建自定义实体存储块

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