如何在 For 迭代器 Simulink 子系统中动态存储向量?

How can I store dynamically a vector in a For iterator Simulink Subsystem?

我有这个简单的系统:

函数中的代码为:

function a = fcn(iteration,a)
a(1,iteration) = iteration;
end

外面的Simulink层如下(a初始化为a = zeros(1,5)):

循环是:

for i = 1:5

并且我想将迭代器存储在一个数组中(即 [1 2 3 4 5]),但由于某种原因,Simulink 在单个时间步的每个迭代器步骤初始化数组,所以我只能看到最后一个值。 我尝试了很多不同的组合,但我无法让它按照我想要的方式工作。怎么做?

每次迭代,MATLAB 函数都从初始数组(输入端口)开始。为了防止这种情况,只需添加一个延迟循环。 MATLAB 函数的输出应该提供延迟以及输出端口。这确保了最后一次迭代的结果也可用。 您可以将可重置延迟与外部初始条件一起使用,以从输入值开始并在每次迭代期间更新该值。

我发现有一个点击延迟选项。使用此选项,您可以将各种值作为向量(动态地)存储在 Simulink 中。