我有一个字符串形式的MatLab函数名(变量名为‘Function_NAME’),这是用户的输入,我需要以某种方式从Python调用该函数。下面您可以看到我是如何使用变量名调用此函数的,但它退出时出现以下错误:(<class 'matlab.engine.MatlabExecutionError'>, MatlabExecutionError("Undefined function 'chsn_agthm' for input arguments of type 'uint8'.\n"), <traceback object at 0x0000015D14323C00>)
import matlab.engine
eng = matlab.engine.start_matlab()
res = eng.function_name(input1, input2, nargout=2)
1条答案
按热度按时间igetnqfo1#
问题是,
function_name
需要是python代码中的语句,但它是以字符串的形式给出的。要解决这个问题,我的建议是不要直接调用function_name
,而是始终使用function_name
作为第一个输入参数来调用matlab的feval
函数。然后,MATLAB引擎调用
feval
,并使用其他参数(nargout=2
除外)作为输入调用名为function_name
的函数。有关
feval
的更多信息,请查看https://de.mathworks.com/help/matlab/ref/feval.html。另类方法:
还可以构造一个包含有效的python表达式(包括
function_name
)的字符串,然后使用pythonseval()
调用该表达式。