2013-11-20 1 views
4

로드 된 매트릭스 MT와 클릭 획득 좌표를 비교하려고합니다. ButtownFcn의 핸들에 저장된 데이터에 접근하는 방법은 무엇입니까?

나는, 매트릭스 MT를로드하는 "loadMT"기능을 썼다 핸들로를 저장하고 끝낸 때이

 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 
(내가 생각하는이 MT는 핸들에 저장되었음을 표시입니다) 제공

마우스 클릭 좌표는이 게시물에서 권장하는 방법으로 얻었습니다 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

는 그렇게으로 핸들에 대한 카테고리를 추가 할 필요가 함수의 ImageClickCallback에서 또한이

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

시도 : 제안에 대한

function ImageClickCallback(objectHandle, eventData, handles)

+0

감사합니다. 그것은 여전히 ​​동일한 오류를 제공합니다 : ((나는 그 프레임을 변경하는 데 사용하는 slider_callback 함수 아래에 넣습니다. 각각의 클릭 후 핸들은 loadMT 함수에 대해 위의 MT를 포함합니다) 핸들 입력을 추가 한 후 –

+0

오류 "GUI를 사용하여 오류> ImageClickCallback (라인 160) 입력 인수가 충분하지 않습니다." –

+0

내 두 번째 편집을 볼 수 있었습니까 – DreamBig