Как автоматически преобразовать код matlab в код Python

#python #python-3.x #python-2.7 #matlab #automation

#python #python-3.x #python-2.7 #matlab #автоматизация

Вопрос:

У меня есть огромный код Matlab, который я хочу преобразовать в Python, мой код состоит из более чем 10 тыс. строк кода, кроме того, он включает в себя некоторые вызовы других файлов Matlab, наборов инструментов, графиков и рисунков графического интерфейса. Поэтому я ищу автоматическое решение этой проблемы, чтобы помочь мне здесь.

Я искал в Интернете и нашел этот пакет под названием SMOP, который является отличным, но, к сожалению, он поддерживает только Python2.7, также он не содержит преобразования графиков или графических изображений, и я не уверен, может ли он преобразовывать вызовы в панели инструментов или нет. кроме того, иногда это выдает мне ошибку.

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

Комментарии:

1. Я думаю, что для этого нет инструмента или функции

Ответ №1:

К сожалению, такого инструмента не существует, особенно для сложных вещей, таких как преобразование наборов инструментов.

Я предлагаю вам попытаться найти места в вашей кодовой базе, где вы могли бы разделить свою логику на автономные модули. Затем вы можете работать над преобразованием своего кода по одному модулю за раз. Вы уже должны начать знакомство с numpy, который будет служить заменой для большинства ваших матричных математических операций. Затем вам нужно будет найти способы объединения вашего кода с помощью таких инструментов, как движок MATLAB.

Стоит отметить, что преобразование Python 2 в 3 относительно просто, и есть официальный инструмент (2to3), который может помочь вам сделать это автоматически. Однако будьте осторожны с конвертером, подобным тому, который вы нашли, быстрое сканирование их github показывает 65 нерешенных проблем и отсутствие обновлений в течение почти 3 лет.

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

Комментарии:

1. Я боялся этого, я думаю, я попробую то, что вы предлагаете (разделив мой код), и посмотрю, как это происходит со мной. Спасибо за ваш ответ.

Ответ №2:

Я думаю, что короткий ответ заключается в том, что нет такого инструмента, который бы делал это надежно. Вы можете использовать код matlab, хотя и на python, и наоборот, используя API matlab engine, но есть некоторые ограничения. Более подробную информацию смотрите в документе здесь

Комментарии:

1. Это вариант, но мы предпочитаем, чтобы код Python не зависел от MATLAB, если решение не предоставлено, я думаю, у нас нет другого варианта. Спасибо за ваш ответ