Есть ли у кого-нибудь опыт создания общей библиотеки в MATLAB?
Вопрос
Исследователь создал небольшую симуляцию в MATLAB, и мы хотим сделать ее доступной для других.Мой план — взять симуляцию, кое-что почистить и превратить в набор функций.Затем я планирую скомпилировать его в библиотеку C и использовать SWIG для создания оболочки Python.В этот момент я смогу вызвать симуляцию из небольшого приложения Django.По крайней мере, я на это надеюсь.
Есть ли у меня правильный план?Кто-нибудь еще сделал что-то подобное?Можете ли вы сообщить мне, есть ли какие-либо серьезные подводные камни, о которых я на данный момент не знаю?
Решение
Я не буду сильно помогать, но я помню, что мне удалось обернуть симуляцию MATLAB в DLL, а затем вызвать ее из приложения Delphi.Это сработало очень хорошо.
Другие советы
Следует помнить, что компилятор Matlab на самом деле не компилирует код Matlab в собственные машинные инструкции.Он просто оборачивает его в автономный исполняемый файл или библиотеку с собственным механизмом выполнения, который его запускает.Вы сможете запускать свой код без установки Matlab и сможете взаимодействовать с другими языками, но он все равно будет интерпретироваться кодом Matlab, поэтому ускорения не будет.
Я бы также сначала попробовал ctypes.
- Используйте компилятор Matlab для компиляции кода в C.
- Скомпилируйте код C в DLL.
- Используйте ctypes для загрузки и вызова кода из этой DLL.
Самый сложный шаг, вероятно, 1, но если вы уже знаете Matlab и использовали компилятор Matlab, у вас не должно возникнуть с ним серьезных проблем.
Возможно, попробуй cтипы вместо СВИГ.Если он был включен в состав Python 2.5, значит, это хорошо :-)