如何确定c-mex s函数中的输入序列?

时间:2014-12-27 17:22:06

标签: matlab simulink mex s-function

我在simulink中实现了一个c-mex函数,用于加速两个矩阵的乘法运算。 到目前为止,它正在工作,但我发现输入排序/序列取决于连接的命名模式。常量。 我附上两张图片作为解释: 首先,我将输入命名为Constant和Constant1。然后,输入序列如预期的那样。 enter image description here 将Constant更改为Constant2时,输入序列会更改,因此我的c-mex函数不正确。 enter image description here 现在,我的问题是如何改变这种行为? 如果不可能,我如何实现变通方法,因为矩阵乘法的排序通常非常重要。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。当您还在mdlSetInputPortDimensionInfo中打印端口时,您会看到根据命名模式,调用的顺序是不同的。 我的解决方法是根据我用ssGetInputPortDimensionSize读回的InputDimension,在mdlSetDefaultPortDimensionInfo中设置输出端口维度。

完整的代码可以在Github找到: https://github.com/steffenmauch/Simulink-Eigen3