从 Python 中调用用户脚本和函数
此示例显示如何通过 Python® 来调用 MATLAB® 脚本,以计算三角形的面积。
要调用 MATLAB 脚本或函数,请将其放在您的 MATLAB 路径中。有关其他选项,请参阅将函数放在 Python 路径中。
对于此示例,在当前文件夹中名为 triarea.m 的文件中创建一个 MATLAB 脚本。
b = 5; h = 3; a = 0.5*(b.* h)
保存该文件后,启动 Python 并调用该脚本。
import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)
a =
7.5000
指定 nargout=0。尽管脚本会打印输出,但它不会向 Python 返回任何输出参量。
将脚本转换为函数并通过引擎调用该函数。要编辑文件,请打开 MATLAB 编辑器。
eng.edit('triarea',nargout=0)
删除三个语句。然后添加一条函数声明并保存文件。
function a = triarea(b,h)
a = 0.5*(b.* h);通过引擎调用新的 triarea 函数。
ret = eng.triarea(1.0,5.0)
print(ret)
2.5
triarea 函数仅返回一个输出参量,因此无需指定 nargout。
将函数放在 Python 路径中
如果 MATLAB 函数不在 MATLAB 路径中,您可以从当前文件夹中调用它。例如,要调用文件夹 myFolder 中的 MATLAB 函数 myFnc,请键入:
import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()如果 myFnc 位于文件夹 C:/work/myfiles 中,您可以将此文件夹添加到 Python 路径中。
eng.addpath("C:/work/myfiles")
要添加指向所有子文件夹的路径,请键入:
s = eng.genpath('C:/work/myfiles')
eng.addpath(s, nargout=0)另请参阅
matlab.engine.MatlabEngine | matlab.engine.FutureResult