В этом примере показано, как развернуть графическое приложение, которое имитирует модель SimBiology. Примером модели является реакционная система Лотка-Вольтерра, как описано Гиллеспи [1], которая может быть интерпретирована как простая модель хищник-добыча.
Этот пример требует MATLAB Compiler™.
Вы можете создать автономные приложения SimBiology с помощью MATLAB Compiler и экспортированной модели SimBiology. Чтобы сделать ваше приложение совместимым с MATLAB Compiler, выполните следующие действия:
Создайте экспортированную модель, используя export
модели способ.
Ускорите модель (необязательно).
Сохраните модель в файл MAT.
Убедитесь, что ваше приложение загружает модель из файла MAT.
Добавьте %#function
прагма о функции верхнего уровня приложения.
Вызовите mcc
функция, явным образом добавляющая файл MAT и зависимые файлы экспортированной модели в приложение.
sbioloadproject lotka m1
exportedModel = export(m1);
Для ускорения требуется правильно настроенный компилятор MEX (см. документацию для mex -setup
).
accelerate(exportedModel);
Раскомментируйте следующую линию, чтобы сохранить модель в exportedLotka.mat
% save exportedLotka exportedModel
mcc
Функция верхнего уровня для приложения, simulateLotkaGUI.m
, уже был обновлен, чтобы использовать экспортированный файл MAT модели. Он также содержит следующее %#function
pragma, которая сообщает MATLAB Compiler, что приложение использует экспортированную модель SimBiology: %#function SimBiology.export.Model
Теперь определите список файлов, которые нужно явным образом добавить в приложение. Этот список включает файл MAT, содержащий экспортированную модель и любые файлы, перечисленные в DependentFiles
свойство экспортированной модели. Обратите внимание, что этот файл MAT должен быть загружен в рабочую область перед mcc
вызывается таким образом, чтобы файлы экспортированной модели были доступны для развертывания.
% To speed up compilation, we use the option |-N -p simbio|, which informs % |mcc| that the deployed application does not depend on any additional % toolboxes. For the purposes of this example, we programmatically % construct the |mcc| command. mccCommand = ['mcc -m simulateLotkaGUI.m -N -p simbio -a exportedLotka.mat ' ... sprintf(' -a %s', exportedModel.DependentFiles{:})]; % Uncomment the following line to execute the |mcc| command. This may take % several minutes. % % eval(mccCommand)
[1] Gillespie D.T. «Точная стохастическая симуляция связанных химических реакций» (1977) The Journal of Physical Chemistry, 81 (25), 2340-2361.