【问题标题】:How do I return a function as an output value in MATLAB?如何在 MATLAB 中将函数作为输出值返回?
【发布时间】:2012-05-31 15:17:28
【问题描述】:

我正在编写一个函数makeFunction(data)。我希望它返回一个函数,而不是矩阵、向量或标量。我该怎么做?

【问题讨论】:

    标签: function matlab return


    【解决方案1】:

    使用函数句柄。

    function f = functionReturner(u)
    % creates the function x.^u to return as an example
    f = @(x) x.^u;
    

    如果我保存这个函数,然后调用functionReturner,参数本身就是一个函数。

    f = functionReturner(3);
    f(2.5)
    ans =
           15.625
    

    您可以很容易地验证 15.625 确实是 2.5^3。

    【讨论】:

    • 不使用匿名函数有什么办法吗?
    • @Will - 我不知道您要解决什么问题,甚至不知道您使用的是什么 MATLAB 版本。您现在对答案施加限制是否有原因?如果你有一些不可告人的动机,请告诉我们,而不是让我们都猜测。有时候看水晶球是那么的困难。
    • 如果匿名部分困扰您,子函数的常规函数​​句柄也可以。
    • 你可以返回一个函数句柄,比如@sin,但它是一样的,只是稍微不那么匿名。你也可以返回一个内联函数。
    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2021-09-10
    • 2015-03-03
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多