how to put function as an input to another function?
이전 댓글 표시
I save a function call "nonliner" in matlab and I want to call this function as an input like
function [Ar,Br] = algopsols(nonliner,A,B); it give me an error
Is there any solution?
Thank you
답변 (1개)
Star Strider
2016년 1월 30일
If you want to use it in the function, you do not have to pass it as an argument. Just include a call to it as part of the function code:
function [Ar,Br] = algopsols(A,B)
returned_values = nonliner( ... argument list ...);
. . . CODE . . .
end
If you want to pass it as an argument to your function, you have to pass it as a function handle (using an ‘@’ sign):
[Ar,Br] = algopsols(@nonliner,A,B)
댓글 수: 4
Ahmed
2016년 1월 30일
Star Strider
2016년 1월 30일
What was the error?
Ahmed
2016년 1월 30일
Star Strider
2016년 1월 30일
Well, if you want to pass the function as an input, you have to allow for it in the argument list:
function [Ar,Br] = algopsols(funname,A,B)
. . . CODE . . .
returned_values = funname( ... argument list ...);
. . . CODE . . .
end
then call it as:
[Ar,Br] = algopsols(@nonliner,A,B);
A simple illustration:
deriv = @(funname,x) (funname(x+1E-8) - funname(x))/1E-8; % Take A Simple Numerical Derivative
t = linspace(-pi, pi); % Time Vector
dsint_dt = deriv(@sin,t); % Derivative Of ‘sin(t)’
figure(1)
plot(t, sin(t), t, dsint_dt)
grid
카테고리
도움말 센터 및 File Exchange에서 Debugging and Improving Code에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!