What would you do?

1 view (last 30 days)
Suppose you have a string like
rhs = 'x*cos(x)/(t+1)';
and that you want to create a function handle... would you do
fHandle = str2func(['@(t,x)',rhs])
or
fHandle = eval(['@(t,x)',rhs]);
or
?
Can you explain why?

Accepted Answer

Chad Gilbert
Chad Gilbert on 3 Jul 2013
I'd tend to choose str2func, merely because it makes it more obvious what I'm anticipating as an output.
  1 Comment
Kye Taylor
Kye Taylor on 8 Jul 2013
Good thought. Thanks.

Sign in to comment.

More Answers (1)

Shashank Prasanna
Shashank Prasanna on 3 Jul 2013
Don't use eval - EVER!
There is a whole documentation page that should answer 'why?'
  1 Comment
Kye Taylor
Kye Taylor on 8 Jul 2013
Thanks for the pointer!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!