Passing function handle to another function and assigning varying number of input arguments to it
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I am trying to write a code in which I need to pass a handle function to another function, let say
function b=myfun1(a)
b=2*a;
end
function b=myfun2(handle_f,a)
b=a*handle_f(a)
end
result=myfun2(@(aa)myfun1(aa),a);
Well, this works perfectly fine. Now let say that I want to decide to vary the number of and type of arguments of myfun1 or use completely different function. How should I write myfun2 to be able to work with any type of function with different number of input arguments and of course same output type?
0 个评论
回答(1 个)
Andrei Bobrov
2012-4-20
eg
function b=myfun2(handle_f,varargin)
a = varargin{1};
b=a.*handle_f(varargin{:})
end
on Hossein's comment
myfun2(@(x)myfun3(x,y),a); %here y is defined
myfun2(@(y)myfun3(x,y),a); %here x is defined
myfun2(@(x,y)myfun3(x,y),a,y);
myfun2(@(y,x)myfun3(x,y),a,x);
2 个评论
Andrei Bobrov
2012-4-21
myfun2(@(x)myfun3(x,y),a); %here y is defined
or
myfun2(@(y)myfun3(x,y),a); %here x is defined
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Argument Definitions 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!