Function having string as argument

6 views (last 30 days)
Mitul Gpoani
Mitul Gpoani on 11 Apr 2019
Edited: Stephen23 on 11 Apr 2019
Hi there,
I am making a function called 'derr' which calculates derivative of the function given in the argument as string.
function = derr('name of function');
example if 'sin' is given as argument this function should calculate derivative of sin.
calling of function should be like : derr('sin')
How can I do that?
Thank you.

Accepted Answer

Stephen23
Stephen23 on 11 Apr 2019
Edited: Stephen23 on 11 Apr 2019
I would not recommend using a string to define the input function.
A much more reliable way would be to write your code to accept a function handle (which is the correct variable type for holding functions):
For example, define your function something like this:
function out = myfun(fun)
assert(isa(fun,'function_handle'),'Input must be a function handle')
out = fun(pi); % do whatever you want with the function handle...
end
and then simply call your function using any function handle:
myfun(@sin)
myfun(@cos)
myfun(@sqrt)
myfun(@(n)3*(n.^2))
If you really want to limit the user to using strings (not designed for holding functions) then consider using str2func or switch inside your function.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!