有关matlab function的问题

我想问下,我在代码中写了输出信号的长度,比如y=length(xn),放到simulink function,连接信号发生器后,为何输出的是1呢,怎么才能输出信号的长度,即使我加了zero-hold,并设置采样率都不行

img

simulink中length求信号的长度,实际上是求的当前时刻输入信号的维度(长度),并不包含信号时间历程历史的长度,所以这里返回1是对的。如果要求信号的历史长度,需要使用通 workspace将信号以向量的形式输出到matlab工作区间后,再用length求这个向量的长度。

用内联函数或者匿名函数试试