金华网站建设工程网站建设,网站后台认证码,软件网站的服务器,兰州网站做的好点的公司首先需要下载与python版本对应的matlab#xff0c;并成功执行matlab中的setup.py文件 参考流程如下 https://blog.csdn.net/s1k9y9/article/details/127793053 完成上述步骤即可开始实现动态调用matlab文件。 文件目录如下 D://call/ |–matlab |–test1 |–main.m |–test2 |…首先需要下载与python版本对应的matlab并成功执行matlab中的setup.py文件 参考流程如下 https://blog.csdn.net/s1k9y9/article/details/127793053 完成上述步骤即可开始实现动态调用matlab文件。 文件目录如下 D://call/ |–matlab |–test1 |–main.m |–test2 |–main.m |–callMatlabFunc.py
test1/mian.m 内容如下
% 实现积分计算
function Norm1 Norm_cal(R, dt)Norm1cumtrapz(R)*dt
endcallMatlabFunc.py 内容如下
import matlab
import matlab.engine# param funcname 访问文件路径
# param params 参数集
def callMatlabFunc(funcname, params):try:eng.cd(./matlab/ funcname) # 进入matlab文件目录val eng.main(*params) # matlab文件全部以main命名以文件夹名称做区分eng.quit()return valexcept Exception as e:return eif __name__ __main__:print(callMatlabFunc(test1, (matlab.double([0,1,2,3,4,5,6,7,8,9,10]), 1.0)))# 传入参数代表求x的0-10定积分# python传入matlab数组需要用matlab.double转换一下# Norm1 0 0.5000 2.0000 4.5000 8.0000 12.5000 18.0000 24.5000 32.0000 40.5000 50.0000这样通过更改funcname变量使执行的matlab文件可以动态更改。