Подтвердить что ты не робот

Как мне взаимодействовать с MATLAB с Python?

Друг спросил меня о создании небольшого веб-интерфейса, который принимает некоторые входы, отправляет их в MATLAB для свертывания числа и выводит результаты. Я разработчик Python/Django по профессии, поэтому я могу работать с веб-интерфейсом, но я не знаю, когда дело доходит до MATLAB. В частности:

  • Мне бы хотелось действительно избежать хостинга на сервере Windows. Любые проблемы с запуском MATLAB в Linux со сценариями, созданными в Windows?
  • Должен ли я искать команды обнуления или компилировать его на C и использовать ctypes для взаимодействия с ним?
  • Если компиляция - это способ пойти, есть ли что-нибудь, что я должен знать о том, чтобы скомпилировать его и работать в Python? (Я давно не компилировал или не работал с C)

Любые предложения, советы и трюки о том, как это сделать?

4b9b3361

Ответ 1

Существует мост python-matlab, который уникален в том смысле, что Matlab работает в фоновом режиме в качестве сервера, так что у вас нет стоимость запуска каждый раз, когда вы вызываете функцию Matlab.

это так же просто, как загрузка и следующий код:

from pymatbridge import Matlab
mlab = Matlab(matlab='/Applications/MATLAB_R2011a.app/bin/matlab')
mlab.start()
res = mlab.run('path/to/yourfunc.m', {'arg1': 3, 'arg2': 5})
print res['result']

где содержимое yourfunc.m будет выглядеть примерно так:

%% MATLAB
function lol = yourfunc(args)
    arg1 = args.arg1;
    arg2 = args.arg2;
    lol = arg1 + arg2;
end

Ответ 2

Посмотрите mlabwrap, который позволяет вам вызывать Matlab через API-интерфейс python

Ответ 3

В качестве альтернативы, поскольку Matlab R2014b предоставляется библиотека Python для вызова Matlab из Python с помощью MATLAB Engine API для Python.

Ответ 4

Что касается совместимости ОС, если вы используете версию matlab для Linux, скрипты, написанные в окнах, должны работать без каких-либо изменений. Если возможно, вы также можете рассмотреть возможность делать все с помощью python. Scipy/numpy с Matplotlib обеспечивают полную замену Matlab.