如何在Python中运行用户输入MATLAB函数

如何在Python中运行用户输入MATLAB函数,python,python-3.x,matlab,matlab-compiler,Python,Python 3.x,Matlab,Matlab Compiler,根据中给出的示例,我们可以调用一个MATLAB文件 trirea.m来自python脚本,如下所示: import matlab.engine eng = matlab.engine.start_matlab() eng.triarea(nargout=0) 如果我们在Python中有一个由用户输入的MATLAB文件名的变量, 文件名='triarea' 那么 返回错误 MatlabExecutionError:输入的未定义函数“文件名” 类型为“double”的参数 如何在Python中运行

根据中给出的示例,我们可以调用一个MATLAB文件
trirea.m
来自python脚本,如下所示:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)
如果我们在Python中有一个由用户输入的MATLAB文件名的变量,
文件名='triarea'
那么

返回错误

MatlabExecutionError:输入的未定义函数“文件名” 类型为“double”的参数

如何在Python中运行用户输入MATLAB函数


在我的实际问题中,文件名是在实例化类的对象时输入的,并存储为对象属性。然后对象的一个方法调用这个MATLAB文件。

您可以将Python的f字符串和eval组合起来

在本例中,直接使用函数名的示例如下:

eng.plot(eng.magic(4))
将变量名计算为函数名的示例:

file_name = 'plot'
eval(f'eng.{file_name}(eng.magic(4))')

您可以将Python的f字符串和eval组合起来

在本例中,直接使用函数名的示例如下:

eng.plot(eng.magic(4))
将变量名计算为函数名的示例:

file_name = 'plot'
eval(f'eng.{file_name}(eng.magic(4))')

您可以使用内置函数
getatr
如下:


您可以使用内置函数
getatr
如下:


谢谢。这对我很有吸引力。我不知道这个功能。非常感谢。这对我很有吸引力。我不知道这个功能。