【问题标题】:Function names and parameters in matlab variablesmatlab变量中的函数名和参数
【发布时间】:2009-01-07 20:09:10
【问题描述】:

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

c = 'CalcPrediction(1,10)'

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

尝试运行(c)会导致:

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

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

【问题讨论】:

    标签: matlab eval


    【解决方案1】:

    您要查找的命令是 eval() 而不是 run()

    【讨论】:

      【解决方案2】:

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

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

      然后执行:

      x=[2,0];

      c='squareRoot';

      run(c);

      给:

      y =

      1.4142 0

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • eval 是一个更准确的问题解决方案。它将 markussvensson 想要使用的确切字符串(在变量 c 中)作为输入。 (顺便说一句,fh=@CalcPrediction 中的 @-operator 比使用 str2func 更简单。)
        猜你喜欢
        • 2018-06-21
        • 2021-12-09
        • 2023-03-06
        • 2020-09-28
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        相关资源
        最近更新 更多