2013-11-20 57 views
4

我試圖將點擊獲得的座標與加載的矩陣MT進行比較。如何訪問ButtownFcn中存儲在句柄中的數據?

我寫了一個「loadMT」功能加載矩陣MT,它存儲到手柄,並且當它完成了它給出了這樣的(我認爲這是一個跡象,表明MT已存儲在把手)

 figure1: 173.0090 
      y_lbl: 11.0092 
lbl_last_action: 10.0092 
AverageModulus: 9.0092 
      axes1: 4.0092 
     slider: 3.0092 
     LoadMT: 0.0092 
     LoadImage: 174.0090 
     output: 173.0090 
     frameName: [599x1 struct] 
     pathname: [1x43 char] 
     no_frame: 599 
      MT: [4318x7 double] 
    currentframe: 101 

通過本文推薦的方式獲得鼠標點擊座標MATLAB how to get mouse click coordinates。核心代碼是

imageHandle = imshow(imObj); 
set(imageHandle,'ButtonDownFcn',@ImageClickCallback); 

function ImageClickCallback (objectHandle , eventData) 
MT=handles.MT; 
axesHandle = get(objectHandle,'Parent'); 
coordinates = get(axesHandle,'CurrentPoint'); 
coordinates = coordinates(1,1:2); 

而且它一直和我有座標。(不MT = handles.MT線)

然而,當我點擊的形象,它給這個錯誤,手段我未能從句柄中提取MT

Undefined variable "handles" or class "handles.MT". 

Error in GUI>ImageClickCallback (line 159) 
MT=handles.MT; 

我該如何將MT從句柄傳遞到局部變量?我的搜索結果讓我很困惑。在此先感謝

回答

4

試試這個

set(imageHandle,'ButtonDownFcn',{@ImageClickCallback,handles};

而且在功能ImageClickCallback你需要爲把手添加類別像這樣:

function ImageClickCallback(objectHandle, eventData, handles)

+0

感謝您的建議。它仍然給出了同樣的錯誤:((我把它放在slider_callback函數下,我用它來改變框架,每次點擊它給出的句柄包括上面的loadMT函數的MT) –

+0

我添加句柄後輸入錯誤會變成「Error using GUI> ImageClickCallback(line 160) 沒有足夠的輸入參數。」 –

+0

嗯,你看到我的第二次編輯嗎? – DreamBig

相關問題