【问题标题】:Matlab Simulink - How do I output an array from my level 2 S Function?Matlab Simulink - 如何从我的 2 级 S 函数输出数组?
【发布时间】:2012-08-17 23:15:58
【问题描述】:
我有一个 S 函数,它将数组作为 excel 文件的输入,并使用数组进行计算。 S 功能块中的最终结果是一个 Nx1 数组。我尝试将 Nx1 数组分配给 sFunc.OutputPort(1).Data,但它给了我一个错误,说我正在尝试将长度为 N 的向量分配给长度为 1 的向量。
我希望能够输出数组并将其输入 Simulink 中的另一个 S 函数和范围以针对另一个数组(时间)绘制数据。
任何帮助将不胜感激!
谢谢!
【问题讨论】:
-
您是否尝试在 S 函数的输出中添加 simout 块? (我想我可能误解了你的问题)。
标签:
arrays
matlab
simulink
【解决方案1】:
对于 2 级 M 文件 s-function,您应该在 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 中尝试过这个,效果很好......