0

在我的 matlab m 文件中,我使用一些逻辑(字符串 concat)来构建如下变量:

c = 'CalcPrediction(1,10)'

这意味着我有一个字符串,它是一个函数和一些参数。我该怎么做那个函数调用?

尝试 run(c) 会导致:

>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.

注意:如果没有参数,run(c) 可以正常工作。例如 c='CalcPrediction'; 运行(c);

4

3 回答 3

7

您正在寻找的命令eval()run()

于 2009-01-07T20:49:41.633 回答
0

如果没有真正看到脚本,很难概括,但是......

其中 squareRoot 是一个 m 文件,仅包含:y=sqrt(x)

然后执行:

x=[2,0];

c='squareRoot';

run(c);

给出:

y =

1.4142 0

这个例子是说您可以定义脚本以使用声明的变量(x在这种情况下),然后在运行脚本之前声明变量。

没有脚本,我不知道你在用参数做什么。如果这不能回答您的问题,请发布您的脚本。

于 2009-01-07T21:32:38.973 回答
-1

你想使用str2func。此函数接受一个字符串并返回一个可以使用您的参数调用的函数处理程序。查看链接页面上的示例。

fh = str2func('CalcPrediction')
fh(1, 10)
于 2009-01-07T20:47:17.067 回答