He estado buscando cómo hacer esto y aquí hay una colección de cosas que he encontrado.
MATLAB tiene MATLAB Engine para Python que le permite a Python ejecutar código MATLAB. También hay https://pypi.python.org/pypi/pym… que creo que se basa en el motor MATLAB y desde Python le permite transferir valores a / desde MATLAB, ejecutar alguna expresión en MATLAB y recuperar los valores. Parece estar dirigido a Linux, pero dice que debería funcionar en Windows (¿con algún esfuerzo?). Python iniciará una nueva sesión de MATLAB, así que no estoy seguro de cómo obtener valores de una sesión de MATLAB existente. Si definió algunas variables globales (en MATLAB), puede pasar valores entre sesiones de MATLAB para que pueda obtener valores de una sesión existente de nuevo a Python de esa manera. Así que eso es Python controlando MATLAB.
No estoy seguro de cómo hacer que MATLAB controle Python, ¡pero MATLAB puede ejecutar comandos del sistema usando el! símbolo para que pueda ejecutar un script de python desde MATLAB con:
! python yourscriptname.py
Aún necesitará encontrar una manera de obtener resultados de ese script a MATLAB, tal vez con archivos .mat (vea el siguiente bit)
- ¿Cuáles son las tareas diarias de un investigador de inteligencia artificial?
- ¿Cómo debo revisar la literatura relevante sobre un tema muy específico sobre el cual no tengo mucho conocimiento?
- Comenzaré mi doctorado en CS en 6 meses, ¿qué habilidades necesito para aprender / dominar?
- ¿Cuáles son los mejores grupos de investigación de geometría computacional en los Estados Unidos?
- ¿Cuáles son los mejores documentos / recursos en algoritmos distribuidos?
La forma obvia pero no tan agradable / eficiente de transferir datos entre aplicaciones es escribir los datos en el disco y luego volver a leerlos. Puede escribir los datos en cualquier formato que desee y luego escribir las funciones de análisis de lectura / escritura usted mismo, pero probablemente sea mejor utilizar los métodos existentes:
En MATLAB, las variables se guardan en archivos .mat con el comando save () de MATLAB y se recuperan con load (). El módulo scipy.io de Pythons lee / escribe archivos .mat con loadmat () y savemat ():
SciPy v0.15.1 Guía de referencia
Entonces, con los archivos .mat compartidos, tiene una solución de transferencia de datos bidireccional. He visto comentarios sobre algunas versiones más recientes de archivos .mat que no son compatibles con scipy, pero he movido con éxito matrices de datos con scipy ver 0.13.3 y MATLAB R2014a (8.3.0.532).
Espero que alguien más pueda dar una solución mejor que esta.