How to convert a string to a function?
83 views (last 30 days)
Hello. How would you convert a string to a function? For example: function [y] = equation(x,exp_or_sin) if x=1 and under function I have a statement such as y = exp_or_sin(x), this is wrong I know. and when using the function equation(1,"exp"). Here, I am trying to say that any function such as "exp" or "sin" can be converted to sin(x) or exp(x) and have an equation like exp(x) and when x=1, y would be y=exp(1).
Cedric Wannaz on 12 Oct 2017
Edited: Cedric Wannaz on 12 Oct 2017
but unless you know what you are doing (or you are just playing to see how that works), approaches that rely on converting a string to a function are often flawed (*).
Anyhow, note that you could allow users to pass a function handle instead of a string or char variable:
function plot_on_01( func )
x = 0 : 0.1 : 1 ;
plot( x, func(x) ) ;
grid on ;
can be called as follows:
plot_on_01( @sin )
plot_on_01( @cos )
plot_on_01( @sqrt )
plot_on_01( @exp )
plot_on_01( @(x)log10(1+x) )
Note (*): I am using STR2FUNC for example when I am building test suites for large projects, but otherwise it is very rare.