Как я могу получить доступ к модулю matlab/octave из питона?

Я ищу способ доступа к модулю matlab из python. Моя текущая ситуация такова:

  • У меня есть питоновый код, который выполняет численные вычисления, вызывая подпрограммы Lapack, в то время как память выделяется как ctypes и передается как указатели на подпрограммы Lapack.
  • У меня также есть матовый модуль, совместимый с октавой, который выполняет некоторые математические трюки, которые я хочу использовать.

Мой вопрос сейчас таков:
. Что является эффективным способом сохранить все основные работы в питоне и в то же время использовать возможности, которые предлагают модули matlab/octave. Также было бы неплохо, если бы мои массивы типов не приходилось преобразовывать в какой-нибудь другой объект для запуска октавы. Однако, я вижу, что последний пункт трудно выполнить.

Мои текущие исследования показывают мне два возможных варианта:

  1. Pytave: Однако кажется, что эти пакеты являются своего рода пре-альфа?!
  2. Go this humpy road: ctypes -> *. mat file (через numpy) -> октава -> *.mat file -> ctypes (через numpy)

25
задан ROMANIA_engineer 6 October 2017 в 19:57
поделиться

1 ответ

Вы можете использовать oct2py , который IIUC был запущен его автором, потому что pytave не работал на win32. Он успешно используется в IPython через расширение octavemagic , и я могу сказать, что его легко использовать само по себе, код поддерживается (я сообщил об небольшой ошибке в Юникоде, и автор исправил ее за день) и работает хорошо. В большинстве случаев это так просто:

>>> from oct2py import octave
>>> octave.run("cos(pi / 3)")
'ans =  0.50000'
>>> octave.call("foo", a, b)  # Function in foo.m

Дополнительные примеры вы можете найти в этой статье блога .

20
ответ дан 28 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: