Contenido principal

Llamar a scripts y funciones del usuario desde Python

Este ejemplo indica cómo llamar a un script de MATLAB® para calcular el área de un triángulo desde Python®.

Para llamar a un script o una función de MATLAB, colóquelo en la ruta de MATLAB. Para ver otras opciones, consulte Poner funciones en la ruta de Python.

Para este ejemplo, cree un script de MATLAB en un archivo llamado triarea.m en su carpeta actual.

b = 5;
h = 3;
a = 0.5*(b.* h)

Después de guardar el archivo, inicie Python y llame al script.

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)
a =

    7.5000

Especifique nargout=0. Aunque el script imprime la salida, no devuelve argumentos de salida a Python.

Convierta el script en una función y llame a la función desde el motor. Para editar el archivo, abra el editor de MATLAB.

eng.edit('triarea',nargout=0)

Elimine las tres instrucciones. A continuación, añada una declaración de función y guarde el archivo.

function a = triarea(b,h)
a = 0.5*(b.* h);

Llame a la nueva función triarea desde el motor.

ret = eng.triarea(1.0,5.0)
print(ret)
2.5

La función triarea solo devuelve un argumento de salida, por lo que no es necesario especificar nargout.

Poner funciones en la ruta de Python

Si la función de MATLAB no está en la ruta de MATLAB, puede llamarla desde la carpeta actual. Por ejemplo, para llamar a la función de MATLAB myFnc en la carpeta myFolder, escriba:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()

Si myFnc está en la carpeta C:/work/myfiles, puede añadir esta carpeta a la ruta de Python.

eng.addpath("C:/work/myfiles")

Para añadir una ruta a todas las subcarpetas, escriba:

s = eng.genpath('C:/work/myfiles')
eng.addpath(s, nargout=0)

Consulte también

|

Temas