如何使用 S-Function 在 Simulink 中传递矩阵

How to pass a Matrix in Simulink using S-Function

我用 MATLAB 写了一个 S-Function。现在我想通过 'simin' 源将矩阵传递到输入中。我已经初始化了 simin 变量的时间 simin.time = 0 并且这些值存储在一个动态大小的矩阵中。例如 simin.signals.values = ones(4)。 现在 MATLAB 告诉我 'time and data values must have the same number of rows'。我明白这一点,但我怎样才能在一个时间步内传递一个矩阵呢? 是否可以只模拟一次 S-Function 而不是循环模拟?

您需要指定信号的维度,请参阅 documentation

我做了一个简单的测试,模拟了10秒,一切看起来都很好。

simin.time = 0;
simin.signals.values = ones(4)
simin.signals.dimensions = [4,4];