我創建了一個GUI來設置參數並在另一個m-File中使用這些參數。我知道在GUI中創建的變量位於不同的工作空間中,從輸入變量到m-File。出於這個原因,我試圖使用global variables
,但不是很順利:變量轉到m-File爲空。全局變量在GUI中設置爲無值 - Matlab
我有具有3個編輯框的GUI,用戶可以設置的參數(0或1),使用這個代碼(表示僅一個編輯框的代碼):
function density_Callback(hObject, eventdata, handles)
% hObject handle to density (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of density as text
% str2double(get(hObject,'String')) returns contents of density as a double
global density
density = str2double(get(hObject, 'String'));
global Variavel_1
assignin('base', 'Variavel_1', density);
的間文件從一個GUI按鈕調用,使用此代碼:
:function calculate_Callback(hObject, eventdata, handles)
% hObject handle to calculate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
test %m-File that uses variables set in GUI
和M文件應在此代碼(test.m)使用這個Variavel_1
和其他人從剩餘editboxes 10
但是我所有的變量都是空的! (我知道我可以把這段代碼放在GUI代碼中,但這不是真正的先決條件,因爲這個簡單的m-File總和會更復雜,所以我需要變量去m-File)。
Variavel_1 = []
Variavel_2 = []
Sum = []
任何人都可以理解爲什麼全局變量失敗?
在此先感謝!
謝謝您的答覆。我知道我可以定義GUI代碼中的總和表達,但是這不是真正的我很抱歉沒有把它弄清楚河 我必須將這些變量傳遞給m文件,因爲m文件將比這更復雜。 – Luiz
@Luiz哪個'm-file'?除了GUI本身以外的'm-file'? GUI代碼中,'callbacks'將在'M-file'和它的設計將被保存在一個'.fig'文件 你有沒有被自己創建的其他任何'M-file',比從'產生的其他指南「? – P0W
是的,m-File是我的程序中名爲「test」的變量,它是變量總和的一個。 因此,GUI按鈕稱爲「test.m」,如上所示! – Luiz