我在 S-Function 文档中读到"S-function level-1 supports vector inputs and outputs. DOES NOT support multiple input and output ports"
.
第二句是否意味着输入和输出维度必须相同?
我一直在使用 S-function level-1 来执行以下操作:
[a1, b1] = choose_cells(c, d);
其中 a1 和 b1 是输出,c 和 d 是输入。所有变量都有一个值,除了 d 是一个有 6 个值的数组。
参考附图,我们都知道在S-Function block中,输入维度必须与输出维度相同,否则会出错,在这种情况下,输入维度为7,输出维度为2,所以我必须在图表中包含“终结者”块才能使其完美工作,否则我会收到错误消息。
我的问题是,当系统变大时,数组 d 可能包含数百个变量,使用这种方法,这意味着我必须添加数百个“终结者”块才能完成这项工作,这听起来绝对不实用。
你能建议我一个明智的方法来实现这个吗?
http://imageshack.us/content_round.php?page=done&id=4tHclZ2klaGtl66S36zY2KfO5co
更新:实际上我一直在尝试将我的 1 级 S-Function 转换为 2 级,但我被困在函数 Output(block) 调用另一个子函数试图寻找其他线程但无济于事,你介意吗提供相关链接?
我的输出取决于对输入的大量处理,这就是我需要调用子函数来计算然后返回输出值的原因,我可以看到的所有示例都是直接在“函数输出(块)”,就我而言,我认为这是不可能的。
然后我尝试使用 Interpreted Matlab Function 块但由于输出维度与输入维度不同而失败,而且它不支持返回多个输出............ ..