通过 Python 调用 MATLAB 函数
使用 MATLAB® Engine API for Python® 调用 MATLAB 路径中的任何 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 函数返回输出参量
您可以直接调用任何 MATLAB 函数并将结果返回到 Python。例如,要确定某个数是否为质数,请使用该引擎调用 isprime
函数。
import matlab.engine eng = matlab.engine.start_matlab() tf = eng.isprime(37) print(tf)
True
从 MATLAB 函数返回多个输出参量
当使用引擎调用函数时,默认情况下该引擎会返回单个输出参量。如果您知道函数可能返回多个参量,请使用 nargout
参量指定输出参量的数量。
要确定两个数的最大公分母,请使用 gcd
函数。设置 nargout
以从 gcd
返回三个输出参量。
import matlab.engine eng = matlab.engine.start_matlab() t = eng.gcd(100.0,80.0,nargout=3) print(t)
(20.0, 1.0, -1.0)
不从 MATLAB 函数返回任何输出参量
有些 MATLAB 函数不会返回任何输出参量。如果函数不返回任何参量,则将 nargout
设为 0。
通过 Python 打开 MATLAB 帮助浏览器。
import matlab.engine eng = matlab.engine.start_matlab() eng.doc(nargout=0)
MATLAB doc
函数将打开浏览器,但不会返回输出参量。如果您没有指定 nargout=0
,引擎将报告错误。
停止执行函数
要停止执行 MATLAB 函数,请按 Ctrl+C。控制权将返回给 Python。
用函数名称替代 MATLAB 运算符
您可以通过调用等效函数在 Python 中使用 MATLAB 运算符。有关运算符和关联的函数名称的列表,请参阅 MATLAB 运算符和关联的函数。例如,要添加两个数值,请使用 plus
函数,而不是 +
运算符。
import matlab.engine eng = matlab.engine.start_matlab() a = 2 b = 3 eng.plus(a,b)
另请参阅
matlab.engine.MatlabEngine
| matlab.engine.FutureResult