2010-07-17 5 views
1

eval() renvoie la même erreur, même avec la plus simple des entrées.Erreur de fonction MATLAB eval()

>> ns=int2str(17) 
>> xs=num2str(18) 
>> d = eval(ns,'+',xs) 
??? Index exceeds matrix dimensions. 
>> eval('1/2') 
??? Index exceeds matrix dimensions. 

Toute aide serait appréciée.

Répondre

5

essayer clear all premier .. il semble que vous avez une variable appelée eval qui est l'observation de la fonction.

>> eval = 1; 
>> which -all eval 
eval is a variable. 
built-in (C:\Program Files\MATLAB\R2010a\toolbox\matlab\lang\@char\eval) % Shadowed char method 
C:\Program Files\MATLAB\R2010a\toolbox\matlab\lang\@opaque\eval.m   % Shadowed opaque method 
C:\Program Files\MATLAB\R2010a\toolbox\stats\@classregtree\eval.m   % Shadowed classregtree method 
+2

peut-être juste 'clear eval' si vous ne voulez pas perdre votre espace de travail :) – Amro

0

Je pense que vous devez mettre l'argument entre crochets. C'est la syntaxe indiquée dans la documentation - voir http://www.math.ufl.edu/help/matlab/tec1.3.html ou http://www.mathworks.com/access/helpdesk/help/techdoc/ref/eval.html

Je n'ai pas Matlab, mais FreeMat,

--> ns='12' 
ns = 
12 
--> xs='14' 
xs = 
14 
--> d=eval([ns,'+',xs]) 
d = 
26 
--> d 
ans = 
26 
--> d=eval(ns,'+',xs) 
Error: Too many inputs to function eval 
+0

J'ai essayé ([, '+', xs ns]) , et d'autres variations ... >> d = eval ??? L'index dépasse les dimensions de la matrice. – caglarozdag

+0

peut-être juste essayer de redémarrer matlab la prochaine fois? – Cole