gpt4 book ai didi

matlab - 如何汇总所有实体的属性值

转载 作者:行者123 更新时间:2023-12-02 03:59:42 25 4
gpt4 key购买 nike

在我的模型中有一个实体生成器,一些属性 function(out_attrName)和一个实体接收器。我如何得到所有 attrName 的总和每个实体的值(value)?我想在每个实体到达接收器并累积该值之前获取它的值。

我尝试使用“累积和” block 但没有运气。这个 block 需要输入离散时间,所以我使用离散时间积分器。不能说我以正确的方式使用它:例如,如果要求和的值是 34 和 40,则总和可能是 12344 而不是正确的 74。

编辑 :

例子:
考虑以下模型:10 个实体先到服务器,然后再到接收器。
有2个Set attribute block :

  • StartTime 的第一个(当前时间来自时钟,在服务器之前)
  • 第二个为EndTime (当前时间来自时钟,在服务器之后)

  • 一个 Attribute function要设置的 block ServiceTime属性 = EndTime - StartTime .
    模型很简单,所以 ServiceTime属性总是等于 10。我们可以在 Signal scope 上看到它.
    我们有 10 个实体。在每个实体中都有一个属性 ServiceTime == 10. 现在我想得到 ServiceTime 的总和所有实体的属性。 10*10=100。我怎么做?

    细节:
  • Model
  • Set attribute 1
  • Server
  • Set attribute 2 & Script function
  • Get attribute
  • 最佳答案

    经过一些研究后,我自己的答案对我有用。
    如果我在某些方面错了,请评论这个答案。

  • 我们需要一个累加器(一些存储)来存储数据。所以我们需要为此使用 MatLab 工作空间。我们可以使用函数coder.extrinsic('evalin')从中读取/写入值和 coder.extrinsic('assignin') .
  • 我们必须将所有实体的所有值放在单个向量中。在这个操作之后,我们将把数据放在一个地方,并且可以做任何我们想做的事情。该向量将由工作空间“托管”。
  • 在我的情况下,很容易按索引分配向量元素。所以每个实体都有一个 ID(它是生成器的 #d 值)。
  • 最后,让我们将数据写入向量。在启动模型之前,在 Matlab 中执行以下代码:someVar = zeros(1000,1)

  • 将数据保存到 Attribute function在水槽之前阻塞:
    out_EntityDuration = FinishTime - StartTime;

    coder.extrinsic('evalin');
    coder.extrinsic('assignin');

    x = zeros(1000,1);
    x = evalin('base', 'someVar');

    x(Id+1) = out_EntityDuration;

    assignin('base','someVar',x);

    在此处查看更多关于读/写工作区的信息 http://www.mathworks.com/matlabcentral/newsreader/view_thread/263578

    执行后模型 someVar存储数据。现在我们可以找到总和或平均值。

    关于matlab - 如何汇总所有实体的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088914/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com