use of eval
Show older comments
I am trying to use evalfunction but are having a hard time:
>> plots=[3 4 6 1]
plots =
3 4 6 1
>> whatplot=input('type type of graph: ','s')
type type of graph: bar
whatplot =
bar
>> eval(whatplot(plots))
??? Index exceeds matrix dimensions.
>>
why wont it evaluate it to a graph with bars?
Accepted Answer
More Answers (2)
Patrick Kalita
on 21 Oct 2011
I think feval would be a better option here. It is a safer than eval, and it easily accommodates passing input arguments:
feval( whatplot, plots )
3 Comments
Fangjun Jiang
on 21 Oct 2011
Yes. feval() is the way to go. I was thinking about inline(), @, etc.
Jan
on 21 Oct 2011
@Tor: Avoid EVAL. As you see, it causes troubles.
Tor Fredrik Hove
on 21 Oct 2011
Wayne King
on 21 Oct 2011
plots=[3 4 6 1];
whatplot = 'bar';
eval([whatplot '(plots)'])
1 Comment
Wayne King
on 21 Oct 2011
also, see the comments by other posters above.
Categories
Find more on Creating, Deleting, and Querying Graphics Objects 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!