通过 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()
从 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