Код, который я использовал, прост.
Код: Выделить всё
simIn = Simulink.SimulationInput("Model");
simIn = simulink.compiler.configureForDeployment(simIn);
simIn = setModelParameter(simIn,RapidAcceleratorUpToDateCheck="on");
input1 = 1;
simIn = setVariable(simIn, "input1" , input1);
simOut = sim(simIn);
Нераспознанная функция или переменная «input1».
Ошибка при использовании buildRacTarget
Переменная 'input1' была удалена из базовой рабочей области.
Единственный способ предотвратить эту ошибку – заранее определить переменную в командном окне, то есть перед запуском Компилятор приложений для создания исполняемого файла. Однако для моих целей это бесполезное решение.
Я пробовал несколько подходов, например:
[*]Использование evalin и присваивание функций
[*]Использование второго сценария Matlab под названием Initial.m, который определяет переменную input1, а затем передает ее в .m (который представляет собой сценарий функции с моделью функции определения (input1 ), который определяет Simulink.SimulationInput и запускает модель simulink. Опять же, это прекрасно работает в Matlab и Simulink, но не может быть скомпилировано в исполняемый файл.
Однако эти подходы не сработали.
< /ol>
Мой вопрос: как это исправить? Почему переменная, определенная в файле .m, удаляется? Почему эта проблема не возникает при выполнении в Matlab и Simulink?
Надеюсь, вы мне поможете.
С праздником!
Подробнее здесь: https://stackoverflow.com/questions/793 ... ate-an-exe