import matlab.engine
import numpy as np
import matplotlib.pyplot as plt
启动MATLAB引擎
eng = matlab.engine.start_matlab()
print("MATLAB引擎启动成功")
定义Python数据
t = np.linspace(0, 2*np.pi, 100)
y = np.sin(t)
将NumPy数组转换为MATLAB数组
t_mat = matlab.double(t.tolist())
y_mat = matlab.double(y.tolist())
在MATLAB中执行命令
eng.workspace['t'] = t_mat # 将变量传递到MATLAB工作区
eng.workspace['y'] = y_mat
eng.eval("plot(t, y)", nargout=0) # 绘制图形
eng.eval("title('正弦函数')", nargout=0)
eng.eval("xlabel('时间'); ylabel('幅度')", nargout=0)
执行MATLAB函数并获取结果
result = eng.sqrt(4.0) # 调用sqrt函数
print(f"sqrt(4.0) = {result}")
调用自定义MATLAB函数
假设当前目录下有个名为myfunc.m的文件
result = eng.myfunc(arg1, arg2)
关闭引擎
eng.quit()
print("MATLAB引擎已关闭")