1 请考虑以下代码 x = zeros(3,3); eval(str3) g = @(x) eval(str3) g(x) g(zeros(3,3)) MATLAB将按eval(str3)预期进行评估,但抱怨其他两个声称它们是Undefined function for input arguments of type 'double'。为什么? matlab — 马库斯克莱弗 source
0 我可以理解为什么Matlab会抛出错误。str3在您的示例中未定义,但是根据您的描述,我可以str3在工作区中定义并包含字符串。在第3行,你创建了一个独立于x它的函数来评估str3执行第3行之前的每一个函数,每次都g被调用。我认为你的第3行并不反映你的意图。 我认为你尝试做的事情就是这样: g = @(x) eval(x); g('x = zeros(3,3)') 但是你还没有描述你想达到的目标。请提供更多详情。 — 桑德 source