matlab 变量中的函数名称和参数
在我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您正在寻找的命令是
eval()
而不是run()
The command you are looking for is
eval()
instead ofrun()
如果没有实际看到脚本,很难概括,但是...
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.
您想要使用 str2func。 该函数接受一个字符串并返回一个可以使用您的参数调用的函数处理程序。 查看链接页面上的示例。
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.