在Matlab中连接两个手柄

时间:2013-01-09 03:24:07

标签: function matlab user-interface handles

我想连接我的两个axes.handles,以便当鼠标按钮被单击时,另一个也会执行第一个操作。我有一个外部函数,可以在单击鼠标时执行我想要执行的操作。我只需更新GUI中的两个句柄,以便在单击一个轴时它会执行相同的操作。

在主GUI中

function testminiproj_OpeningFcn(hObject, ~, handles, varargin)
handles.output = hObject;
handles.done=0;
guidata(hObject, handles);

setappdata(0,'figureHandle',gcf);

setappdata(gcf,'axesHandle1',handles.axes6);

setappdata(gcf,'axesHandle2',handles.axes7);

这是我的外部函数,它通过调用mousemotion回调到主GUI;

function varargout = mousemotion(this,varargin)

%// get the figure handle from the application main data
figureHandle = getappdata(0,'figureHandle');

%// get the axes handle from the figure data
axesHandle1 = getappdata(figureHandle,'axesHandle1');

%// get the axes handle from the figure data
axesHandle2 = getappdata(figureHandle,'axesHandle2');

global rdata;
if nargin<1
  set(gcf,'WindowButtonDownFcn','mousemotion(''down'')');
  set(gcf,'WindowButtonUpFcn','mousemotion(''up'')');
  set(gcf,'WindowButtonMotionFcn','');

感谢任何帮助。我试图提出这个问题我很难。希望有人能提供帮助。感谢。

2 个答案:

答案 0 :(得分:0)

你可以制作一个手柄矢量。像这样:

axesHandles = [axesHandles1; axesHandles2];
set(axesHandles, 'PropertyName', PropertyValue);

这样两个轴的属性值都将设置为PropertyValue

答案 1 :(得分:0)

您需要解决并手动找出点击的轴。

实际上并不难。 只需使用图形和轴的Position属性。