Как определить входную последовательность в s-функции c-mex?
Я реализую функцию c-mex в simulink для ускорения умножения двух матриц. Пока это работает, но я обнаружил, что порядок / последовательность ввода зависит от схемы именования связанных, например, констант. Я приложил две картинки для объяснения: во-первых, я назвал входы Constant и Constant1. Затем входная последовательность соответствует ожидаемой.При изменении Constant на Constant2, последовательность ввода изменяется, и, следовательно, моя функция c-mex неверна.Теперь мой вопрос: как я могу изменить это поведение? Если это невозможно, как я могу реализовать обходной путь, потому что порядок умножения матриц в целом очень важен.
Спасибо
Изменить: я нашел решение. Когда вы также печатаете порт в mdlSetInputPortDimensionInfo, вы видите, что в зависимости от схемы именования последовательность вызова различается. Мой обходной путь - установить размер выходного порта в mdlSetDefaultPortDimensionInfo на основе InputDimension, который я считал обратно с помощью ssGetInputPortDimensionSize.
Полный код можно найти на Github: https://github.com/steffenmauch/Simulink-Eigen3