MATLAB Answers

I get Undefined function or variable eror but that veriable is in Workspace

14 views (last 30 days)
mohammad
mohammad on 7 Aug 2012
I get under eror but that veriable is in Workspace
??? Error using ==> eval
Undefined function or variable 'mn'.% but before using of eval, I defined 'mn' and now the 'mn' is in workspace
Error in ==> LEDbar>pushbutton1_Callback at 346
gathd=eval(MAXmatris);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> LEDbar at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==>
@(hObject,eventdata)LEDbar('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
but before using of eval, I defined 'mn' and now the 'mn' is in workspace.
I am really confused for what tells 'mn' is undefined.
any idea?

  1 Comment

Sign in to comment.

Accepted Answer

Matt Fig
Matt Fig on 7 Aug 2012
Edited: Matt Fig on 7 Aug 2012
When you say you define the variable in the workspace, which workspace are you talking about? Do you mean it is defined in the base workspace (the command line)? If so, then that variable is not visible inside the callback, which has its own workspace. You could use EVALIN('base',...) but this may not make your problem go away, depending on what you are trying to accomplish.
Why are you using EVAL in a callback anyway?

  4 Comments

Show 1 older comment
Matt Fig
Matt Fig on 7 Aug 2012
Now you are beginning to understand why the use of EVAL is not encouraged! What are you trying to do by using EVAL?
mohammad
mohammad on 7 Aug 2012
Matt I must use that I have no other way. I described reasons here
Now, by using
t=[];
evalin('base','t',mn) (that you told)
the problem was solved and really thanks. But I have exactly the same problem with the next line. I use evalin('base','p',op); but errors that op is not defined (however it's in base workspace). for what by using evalin, it errors the same for other line?!
mohammad
mohammad on 7 Aug 2012
Oh, OK by using t=evalin('base',mn); the problem now solved. Really thanks.

Sign in to comment.

More Answers (0)

Sign in to answer this question.