2013-08-12 57 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