matlab 变量中的函数名称和参数

发布于 2024-07-12 09:50:20 字数 347 浏览 6 评论 0原文

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

c = 'CalcPrediction(1,10)'

这意味着我有一个字符串,它是一个函数和一些参数。 我该如何进行该函数调用?

尝试 run(c) 结果:

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

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

In my matlab m-file I am using some logic (string concat) to build variables like this:

c = 'CalcPrediction(1,10)'

That means I have a string that is a function and some parameters. How can I do that function call?

Trying run(c) results in:

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

Note: run(c) works fine if there is no parameters. E.g.
c='CalcPrediction';
run(c);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

踏雪无痕 2024-07-19 09:50:20

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

The command you are looking for is eval() instead of run()

情痴 2024-07-19 09:50:20

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

m 文件

其中 squareRoot 是一个仅包含 :y=sqrt(x)然后执行:

x=[2,0] 的 ;

c='squareRoot';

run(c);

给出:

y =

1.4142 0

这个例子是说你可以定义脚本来使用声明的变量(在本例中为x),然后在运行脚本之前声明该变量。

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

Without actually seeing the script it's hard to generalize, but...

Where squareRoot is an m-file containing only :y=sqrt(x)

Then executing :

x=[2,0];

c='squareRoot';

run(c);

gives :

y =

1.4142 0

This example is to say you can define the script to use a declared variable (x in this case) and then declare the variable before running the script.

Without the script I don't know what you're doing with the parameters. If this doesn't answer your question, post your script.

我是男神闪亮亮 2024-07-19 09:50:20

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

fh = str2func('CalcPrediction')
fh(1, 10)

You want to use str2func. This function takes a string and returns a function handler that can be called with your parameters. Check out the examples on the linked page.

fh = str2func('CalcPrediction')
fh(1, 10)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文