2017-03-03 75 views
0

我想使簡單的GUI爲我的劇本,我在哪裏可以修改參數值並運行該腳本。MATLAB - 從GUI傳遞參數的新值的.m腳本

我已經創建示例素文字和圖形用戶界面,2個按鈕。我不能將腳本代碼放入GUI代碼中,我需要在更大的腳本上使用腳本代碼。

因此,腳本代碼:

number = 10; 
variable(1:10) = NaN; 

for i = 1:10; 
    variable(i) = i * number; 
end 

figure 
plot(variable) 

按按鈕的代碼,這是工作的罰款。腳本是.m文件的名稱,而不是功能:

function pushbutton1_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 
evalin('base','script') 

但我不知道該怎麼輸入到編輯按鈕的代碼,如果我想更改腳本「數量」的值:

function edit1_Callback(hObject, eventdata, handles) 
% hObject handle to edit1 (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 edit1 as text 
%  str2double(get(hObject,'String')) returns contents of edit1 as a double 

最後,有時當我嘗試繪製更多圖表時,一個圖形會覆蓋GUI圖形,而我只能看到按鈕,而不能看到整個GUI。

謝謝FOT任何幫助。

回答

0

在過去的一段代碼給出的提示是不夠的。

a = str2double(get(hObject,'String')); 

這將在回調函數的堆棧中將輸入值保存爲double

爲了將該值傳遞給調用者腳本(基地)堆棧,使用assignin

assignin('base', 'number', a) 
+0

好吧,這很容易,謝謝!你能告訴我,如何避免用boxplot圖代替GUI interace?使用圖形用戶界面後,我只能看到像這樣的按鈕: http://imgur.com/a/j2Zun –

+0

如何繪製新圖框情節? – Yvon

+0

耶穌我是啞巴。每一個其他的情節都是新的身影,而不是這一個。好吧,這可能是全部,謝謝。 –