【问题标题】: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 中尝试过这个,效果很好......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2017-07-30
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多