【问题标题】:Parameter passing to function handle参数传递给函数句柄
【发布时间】:2013-06-04 09:02:01
【问题描述】:

我有一个函数,我想每次都改变它的输入并在一定的时间间隔内积分。比如我先写一个m文件:

function y = myfun(x) 

y = 1 ./ (x.^3 - 2*x - 5);

现在我想集成 myfun(x-2) 或 myfun(2*x) 等函数。有谁知道我应该如何通过它们? Integral(myfun(x-2),a,b) 会产生错误。

谢谢

【问题讨论】:

    标签: matlab function parameter-passing integral


    【解决方案1】:

    我建议在您的函数的句柄上调用integral,如下所示:

    h1 = @(x)myfun(x);
    h2 = @(x)myfun(x-2);
    h3 = @(x)myfun(x.^2);
    
    integral(h1,a,b);
    integral(h2,a,b);
    integral(h3,a,b);
    

    这应该使积分函数认为您只是将myfun 定义为x 的函数,同时允许您将任何表达式传递给它。您也可以通过这种方式传递其他参数,例如:

    h = @(x)myfun(x, params);
    integral(h,a,b);
    

    其中params 可以是您在myfun 的定义中使用的参数列表。

    希望对你有帮助。

    编辑:我在我有权访问的服务器上对此进行了测试,该服务器确实具有integral 功能,并且它似乎可以工作。希望这能回答您的问题。

    【讨论】:

    • 是的,这正是我所要求的 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2020-02-23
    相关资源
    最近更新 更多