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

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

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

7.08.2008 18:47:58
4 ОТВЕТА
РЕШЕНИЕ

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

3
22.11.2016 20:20:58

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

1
19.08.2008 13:51:47

Я также сначала попробую ctypes.

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

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

2
26.09.2008 09:55:39

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

5
2.11.2009 03:43:54