У кого-нибудь есть опыт создания разделяемой библиотеки в MATLAB? - PullRequest
11 голосов
/ 07 августа 2008

Исследователь создал небольшую симуляцию в MATLAB, и мы хотим сделать ее доступной для других. Мой план состоит в том, чтобы взять симуляцию, очистить несколько вещей и превратить их в набор функций. Затем я планирую скомпилировать ее в библиотеку C и использовать SWIG для создания оболочки Python. В этот момент я смог вызвать симуляцию из небольшого приложения Django. По крайней мере, я на это надеюсь.

У меня есть правильный план? Кто-нибудь еще делал что-то подобное? Можете ли вы сообщить мне, есть ли какие-либо серьезные подводные камни, о которых я не знаю в данный момент?

Ответы [ 4 ]

5 голосов
/ 02 ноября 2009

Следует помнить, что компилятор Matlab фактически не компилирует код Matlab в нативные машинные инструкции. Он просто оборачивает его в отдельный исполняемый файл или библиотеку со своим собственным механизмом выполнения, который его запускает. Вы сможете запускать свой код без установленного Matlab, и вы сможете связать его с другими языками, но он все равно будет интерпретироваться как код Matlab, поэтому ускорения не будет.

3 голосов
/ 08 августа 2008

Я не сильно помогу, но я помню, что смог обернуть симуляцию MATLAB в DLL и затем вызвать ее из приложения Delphi. Это сработало очень хорошо.

2 голосов
/ 26 сентября 2008

Сначала я бы попробовал ctypes.

  1. Используйте компилятор Matlab для компиляции кода в C.
  2. Скомпилируйте код C в DLL.
  3. Используйте ctypes для загрузки и вызова кода из этой DLL

Самый сложный шаг, вероятно, равен 1, но если вы уже знаете Matlab и использовали компилятор Matlab, у вас не должно возникнуть серьезных проблем с ним.

1 голос
/ 19 августа 2008

Возможно, попробуйте ctypes вместо SWIG. Если он был включен как часть Python 2.5, то это должно быть хорошо: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...