Azzera filtri
Azzera filtri

use of eval

2 visualizzazioni (ultimi 30 giorni)
Tor Fredrik Hove
Tor Fredrik Hove il 21 Ott 2011
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?

Risposta accettata

Wayne King
Wayne King il 21 Ott 2011
Your call to input() returns the string bar in whatplot
but whatplot(plots) is not a string.
eval([whatplot '(plots)'])
  4 Commenti
Tor Fredrik Hove
Tor Fredrik Hove il 21 Ott 2011
thanks! I guess I am also a bit confussed about my book. It says:
>>x=[9 7 10 9];
whatplot=input('What type of plot?: ','s');
What type of plot?: bar
>>eval([whatplot '(x)'])
>>title(whatplot)
>>xlabel('Student#')
>>ylabel('Quiz Grade')
I guess the three last lines are just for naming graph and coordinates but thoose before don't return any graph for me
Jan
Jan il 22 Ott 2011
Bad book. Evil EVAL.

Accedi per commentare.

Più risposte (2)

Patrick Kalita
Patrick Kalita il 21 Ott 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 Commenti
Jan
Jan il 21 Ott 2011
@Tor: Avoid EVAL. As you see, it causes troubles.
Tor Fredrik Hove
Tor Fredrik Hove il 21 Ott 2011
it is part of curriculum unfortunately:) If not I would have:)

Accedi per commentare.


Wayne King
Wayne King il 21 Ott 2011
plots=[3 4 6 1];
whatplot = 'bar';
eval([whatplot '(plots)'])
  1 Commento
Wayne King
Wayne King il 21 Ott 2011
also, see the comments by other posters above.

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by