2016-08-18 8 views
0

У меня есть набор файлов .mat, все они представляют собой силы на объект в зависимости от его отношения. Я хотел бы загрузить их в симуляторе Simulink, но по одному, указав имя правильного.Matlab & Simulink - Загрузите определенный .mat в симуляторе Simulink

Я попытался использовать функцию Matlab, но, похоже, она не работает, как будто функция «load» не может использоваться через Simulink.

Если у кого-то есть идея, я был бы благодарен!

+0

Используйте внешнюю функцию из функционального блока MATLAB и загрузите вызов с этой функции. – Navan

ответ

0

Возможно, вы столкнулись с проблемами с областью действия и не загружаете файлы .mat в правильное рабочее пространство. По умолчанию Simulink использует рабочую область Base для поиска переменных. Убедитесь, что функция возвращается и задает правильные переменные здесь, как правило, проще использовать скрипт для этого.

Это означает, что вы будете использовать базовое рабочее пространство, что может быть нежелательно. Если вы хотите сохранить инкапсулированные данные, вы можете сгенерировать masked subsystem и загрузить параметры из сценария инициализации маски. Это определит переменные, доступные для любого блока внутри маскированной подсистемы.

0

Проверить эту ссылку: https://in.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--categorical-list.html

Я процитирую соответствующий материал здесь:

-Использование только при создании MEX или код для Simulink® моделирования.

-Для загрузки констант времени компиляции используйте coder.load.

-Не поддерживает использование функции без назначения структуры или массива. Например, используйте S = load (filename), а не load (имя файла).

-Выход S должен быть именем структуры или массива без каких-либо подписок. Например, S (i) = load ('myFile.mat') не допускается.

-Инструменты для загрузки должны быть векторами постоянной времени компиляции.

-Не поддерживает загрузку объектов.

-Если MAT-файл содержит неподдерживаемые конструкции, используйте load (filename, variables), чтобы загрузить только поддерживаемые конструкции.

-Вы не можете использовать сохранение в функции, предназначенной для генерации кода. Генератор кода не поддерживает функцию сохранения. Кроме того, вы не можете использовать coder.extrinsic с сохранением. До генерации кода вы можете использовать save, чтобы сохранить данные рабочей области в MAT-файле.

-Вы должны использовать coder.varsize, чтобы явно объявлять переменные данные, загружаемые с использованием функции загрузки.