你不。"From Workspace"块自动将数据视为信号,并将第一列视为时间。您可以将其配置为保存该值直到下一次,或者为中间时间进行线性插值。
Simulink有两种模式:连续模式和离散模式,默认为连续模式。
在连续模式中,时间几乎可以是任何东西,时间通常可以来回徘徊(如果您使用默认的龙格-库塔求解器),并且时间步长不规则。基于时间的遍历索引对于连续时间很少有意义(但有时将数组作为插值表的参数是有意义的)。
离散时间有一个接一个事件,固定的时间步长(对于任何分段,不一定对所有部分都相同)。通过离散时间增量数组的各个部分可能是有意义的,但请记住,系统是基于时间演进的,而不是基于“步数”。如果用户要配置一个不同的时间步长,基于步长号索引数组是否仍然有意义?
如果您正在为块构建参数,那么您应该看一下
//www.ru-cchi.com/matlabcentral/answers/1653710-global-variable-in-simulink#comment_2009495
我会告诉你怎么做。
一般来说,你可以创建一个MATLAB函数块,它有一个持久化变量,就是数组的下标,你可以使用下标处的值来计算一些值,然后你可以增加下标(但是要小心从数组的末尾滑落……你要打包吗?你想抓住最后一个吗?)但正如我上面所概述的,很多时候这种索引在Simulink中被证明是错误的。
事实证明,有时有意义的做法是,创建工作区对象时,使用基于名义时间步长的前导列,然后切换到From workspace it,让块作为一个信号源,内容随时间悄悄地演进。这样您就不需要担心迭代次数和(可能是可变的)时间步到列号之间的映射