2010-07-17 5 views
1

eval() возвращает ту же ошибку, даже с простейшим входом.Ошибка функции MATLAB eval()

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

Любая помощь будет оценена по достоинству.

ответ

5

попробовать clear all первый .. мне кажется у вас есть переменная, которая eval затенение функции.

>> 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

может быть просто 'clear eval', если вы не хотите потерять свое рабочее пространство :) – Amro

0

Думаю, вам нужно поставить аргумент в квадратные скобки. Вот синтаксис, показанный в документации - см http://www.math.ufl.edu/help/matlab/tec1.3.html или http://www.mathworks.com/access/helpdesk/help/techdoc/ref/eval.html

у меня нет, но MATLAB в 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

Я пытался, что и другие варианты ... >> d = Eval ([нс, '+', хз]) ??? Индекс превышает размерность матрицы. – caglarozdag

+0

, может быть, просто попробуйте перезапустить матлаб в следующий раз? – Cole

Смежные вопросы