2013-08-12 58 views
1

我想在MATLAB中建立一个程序,我正在使用编辑框,但我想要用户将输入的值稍后从另一个函数中使用。那么我应该使用global变量还是有其他方法?在MATLAB指南

我试图在函数外定义global变量,但不起作用。 我试图在函数内部定义它,然后从另一个函数调用它,但它说它是未定义的。有没有办法可以做到这一点?

我只是用

function edit1_Callback(hObject, eventdata, handles) 
str2double (get (hObject,'String')); 

谢谢! :)

+1

使用handles-structure + guidata !!你会在这个主题上找到几个答案......我很确定:) –

+0

所以我将在编辑框的函数中使用'guidata(hObject,handles)',然后'a = guidata(hObject,handles )'在我想要回叫的其他函数中? – Chrysovalando

+1

不,不完全;-)我会在这发表一个简短的答案... –

回答

3

如果你想在Matlab的GUI中的数据存储,您可以使用手柄结构是这样的:后来

handles.myVar=123; 
%after this dont forget to save it (yes, this is a bit annoying): 
guidata(hObject, handles); 

,另一个回调例如内,你可以找到在这个数据句柄结构:

handles.myVar 
+0

我只是用你的代码,而不是123我已经把'str2double(get(hObject,'String'));'它总是给我显示相同的数字:/为什么是这样? – Chrysovalando

+0

对不起,忽略了我的最后一条评论:p正在工作! :) 谢谢!! – Chrysovalando