最近几天尝试使用Python调用Matlab文件,按照官方教程来,总出现找不到对应的函数或者文件。
Python文件:
import matlab.engine
eng = matlab.engine.start_matlab()
ret = eng.triarea(1.0,5.0)
print(ret)
Matlab 函数 文件:
function a = triarea(b,h)
a = 0.5*(b.* h);
两个文件放置到相同文件夹,运行后总是提示:
MatlabExecutionError: 未定义与 'double' 类型的输入参数相对应的函数 'triarea'。
而Python调用Matlab自带函数,却没有问题。
猜测是MATLAB engine,在搜索目录中找不到被调用的m文件或函数。
故Python文件添加代码,控制engine,进入被调用的m文件目录
eng.cd('D:/01_Code/Anaconda',nargout=0)
整个py代码如下
# import matlab
import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd('D:/01_Code/Anaconda',nargout=0)
ret = eng.triarea(1.0,5.0)
print(ret)
运行OK, 如下
----------------------------------------------------------------------------------------------
环境:
Win10;
MATLAB 2018a;
.......
Python环境为:
Anaconda下的 python 3.6。
Spyder编辑器
----------------------------------------------------------------------------------------------
参考:
官方教程:
https://ww2.mathworks.cn/help/matlab/matlab_external/call-user-script-and-function-from-python.html
戚少商:python中调用matlab
最后
以上就是现实鞋垫最近收集整理的关于matlab中primpoly函数_Python调用Matlab函数或m脚本文件的全部内容,更多相关matlab中primpoly函数_Python调用Matlab函数或m脚本文件内容请搜索靠谱客的其他文章。
发表评论 取消回复