参数传递给函数句柄

时间:2013-06-07 23:51:30

标签: matlab function parameter-passing integral

我有一个功能,我希望每次都改变输入并在一定的时间间隔内进行整合。例如,我首先写一个m文件:

function y = myfun(x) 

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

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

由于

1 个答案:

答案 0 :(得分:0)

我建议在函数的句柄上调用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功能,但它似乎有效。希望这能回答你的问题。