Из Импорт данных во входные порты корневого уровня Я обнаружил, что могу сделать что-то вроде
sim('myModel', 'LoadExternalInput', 'on', 'ExternalInput', 'u, y');
, где u
и y
- структуры с полями time
, signals.values
и signals.dimensions
; каждая строка signals.values
является вектором, соответствующим n элементу time
. signals.dimensions
- это размер signals.values
. Я должен вручную настроить порты In1, чтобы они ожидали того же размера, что и u.signals.values
(ну, конечно, я могу сделать это программно, перед тем как подать ..):
Примечание Необходимо установить для параметра Размеры порта для входного или триггерного блока то же значение, что и для поля dimensions
соответствующей структуры ввода. Если значения различаются, при попытке смоделировать модель отображается сообщение об ошибке.
(из «Импорт структур данных в порт ввода корневого уровня» )
Какой смысл устанавливать signals.dimensions
, если мне все равно придется вручную устанавливать размер в блоке In1? В любом случае, возможно, именно так я и поступлю: просто изучите u
и y
перед запуском симуляции, а затем установите свойства Inblock (конечно, программно), чтобы ожидать векторы этой длины.
Я все еще надеюсь, что есть более элегантное решение для этого.