Matlab Simulink - 如何从我的2级S函数输出数组?

时间:2012-07-16 15:58:13

标签: arrays matlab simulink

我有一个S函数,它将数组作为excel文件的输入,并使用数组进行计算。 S功能块的最终结果是Nx1阵列。我已经尝试将Nx1数组分配给sFunc.OutputPort(1).Data,但是它给出了错误,说我试图将长度为N的向量分配给长度为1的向量。

我希望能够输出数组并将其输入到Simulink中的另一个S函数和范围内,以便将数据绘制到另一个数组(时间)。

非常感谢任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:1)

对于Level-2 M文件s函数,您应该在setup()函数中明确指定Outport维度:

function setup(block)
....
block.OutputPort(1).Dimensions       = [N 1];

然后你可以在输出函数中输出你的数组:

function Output(block)
...
block.OutputPort(1).Data = ones(N,1);

我在一个假的L-2 M-S-Fcn中尝试了这个,它工作得很好......