我正在用Matlab編程我的第一個GUI。我已經構建了GUI的視覺方面,現在我正在編寫回調函數。當我編寫回調函數時,我需要傳遞兩個句柄,但由於某種原因,只有一個句柄被傳遞給該函數。我確信這確實是一個很基本的問題,但我真的很努力地克服這個問題,並且在文檔中找不到任何理由爲什麼這樣做不起作用Matlab回調函數只能看到一個參數傳遞給它
回調函數用於按鈕,兩個用戶輸入的參數,然後使用這些數字來建立傳遞函數。這兩個參數被輸入到可編輯的文本框中,使用句柄orderEdit和timeConstEdit。我可以提取我需要的字符串,然後將其轉換爲數字數據格式。代碼如下所示
首先,我設置回調標誌按鈕rtdButton
set(rtdButton, 'Callback', @rtdPlot);
回調函數的前兩行如下(該功能的其餘部分應工作,一旦我可以得到這些值):
function rtdPlot(orderEdit,timeConstEdit)
n = str2num(get(orderEdit, 'String'));
tau = str2num(get(timeConstEdit, 'String'));
但是我得到的錯誤
??? Error using ==> str2num at 33
Requires string or character array input.
Error in ==> mixingModel>rtdPlot at 148
tau = str2num(get(timeConstEdit, 'String'));
??? Error while evaluating uicontrol Callback
任何幫助Ø作如何做到這一點,將不勝感激
編輯:基於蜜蜂的帖子正確的代碼如下:
集(rtdButton, '回調',{@ rtdPlot,orderEdit,timeConstEdit});
function rtdPlot(src,eventdata,arg1,arg2)
n = str2num(get(orderEdit, 'String'));
tau = str2num(get(timeConstEdit, 'String'));
乾杯 約翰
另一個有用的習慣是'set(handle,'Callbac k',@(a,b)函數(a,b,c,d));' –
謝謝,那正是我需要的 – speeder1987