调用MATLAB类函数与matlab.engine Python

58视图(30天)
我有一个MATLAB MPC (PU_SMPC)类,我可以用MATLAB Python内正确地初始化。引擎API通过运行:
进口matlab.engine
eng = matlab.engine.start_matlab ()
smpc = eng。PU_SMPC (params, nargout = 1)
它返回一个matlab.object。然而,我无法弄清楚如何运行PU_SMPC仿真方法,它接受一个整数作为输入。这是一个总结我已经尝试和错误:
smpc.simulation (60)
回溯(最近的电话):
文件输入“< >”、线1,在<模块>
AttributeError:“matlab.object”对象没有属性的模拟
,
eng。模拟(smpc 60)
错误使用PU_SMPC /模拟
许多输出参数。
回溯(最近的电话):
文件输入“< >”、线1,在<模块>
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ matlabengine.py”、线70年,在__call__
返回FutureResult(自我。_娜戈引擎(),未来,_标准输出,
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ futureresult.py”、线67年,在结果
返回自我。__future.result(超时)
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ fevalfuture.py”、线82年,在结果
自我。_结果= pythonengine.getFEvalResult(自我。_未来,自我。_nargout,, =自我。_呃=自我。_犯错)
matlab.engine。MatlabExecutionError:太多输出参数。
,
eng.simulation (60)
未定义的函数的模拟输入参数类型的“int64”。
回溯(最近的电话):
文件输入“< >”、线1,在<模块>
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ matlabengine.py”、线70年,在__call__
返回FutureResult(自我。_娜戈引擎(),未来,_标准输出,
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ futureresult.py”、线67年,在结果
返回自我。__future.result(超时)
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ fevalfuture.py”、线82年,在结果
自我。_结果= pythonengine.getFEvalResult(自我。_未来,自我。_nargout,, =自我。_呃=自我。_犯错)
matlab.engine。MatlabExecutionError:未定义的函数“模拟”输入参数“int64”类型。
结束
,
eng.PU_SMPC.simulation (60)
未被认可的PU_SMPC.simulation的函数或变量。
回溯(最近的电话):
文件输入“< >”、线1,在<模块>
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ matlabengine.py”、线70年,在__call__
返回FutureResult(自我。_娜戈引擎(),未来,_标准输出,
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ futureresult.py”、线67年,在结果
返回自我。__future.result(超时)
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ fevalfuture.py”、线82年,在结果
自我。_结果= pythonengine.getFEvalResult(自我。_未来,自我。_nargout,, =自我。_呃=自我。_犯错)
matlab.engine。MatlabExecutionError:未定义的函数“PU_SMPC.simulation”输入参数“int64”类型。
结束
,
eng.PU_SMPC。模拟(smpc 60)
未被认可的PU_SMPC.simulation的函数或变量。
回溯(最近的电话):
文件输入“< >”、线1,在<模块>
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ matlabengine.py”、线70年,在__call__
返回FutureResult(自我。_娜戈引擎(),未来,_标准输出,
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ futureresult.py”、线67年,在结果
返回自我。__future.result(超时)
文件用户“C: \ \ Usuario \ PycharmProjects \ Adaptive_SMPC \ matlab引擎\ \ fevalfuture.py”、线82年,在结果
自我。_结果= pythonengine.getFEvalResult(自我。_未来,自我。_nargout,, =自我。_呃=自我。_犯错)
matlab.engine。MatlabExecutionError:未定义的函数“PU_SMPC.simulation”输入参数“PU_SMPC”类型。
结束
我不能访问任何Python的类成员。
这是一个样本的类是什么样子:
classdefPU_SMPC <处理
属性
一个;
B;
C;
结束
方法
函数obj = PU_SMPC (A, B, C)
一个=;
B = B;
C = C;
结束
函数模拟(obj simulation_time)
%代码运行模拟
结束
结束
有什么建议吗?

答案(2)

肖恩·德Wolski
肖恩·德Wolski 2021年8月9日
编辑:肖恩·德Wolski 2021年8月9日
兆瓦为我工作。指定nargout,确保你的目录的路径(强烈建议使用项目,即openProject()你要做的第一件事在python引擎,这样整个MATLAB设置你所从事的工作)

Yongjian冯
Yongjian冯 2021年8月5日
您首先需要实例化一个PU_SMPC对象在python中,对吧?你是作为一个静态方法调用成员方法模拟。
3评论
Indhu Priyadharshini Govindasamy
你好 @Yongjian冯 ,
我试图调用matlab工作空间变量在python中使用matlab引擎API
方法一
eng。eval (“= simout;” , nargout = 0 )
英格 .eval ( “b =兜售;” , nargout = 0 )
mpi = 英格 .workspace [ “一个” ]
ki = 英格 .workspace [ “b” ]
两个方法
mpi = 英格 .workspace [ “simout” ]
ki = 英格 .workspace [ “兜售” ]
我用这些代码行
我能得到simout值在python中但是吹捧我得到这个错误
matlab.engine。MatlabExecutionError:识别函数或变量“兜售”。
你能帮我解决这个问题吗?

登录置评。

类别

找到更多的在从Python调用MATLAB帮助中心文件交换

标签

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!