2013-11-20 31 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

相关问题