Matlab按钮DOWNFCN不使用图像
我试图用一个按钮放大Mandelbrot集合的区域。我正在使用GUIDE,因此希望使用轴的Matlab按钮DOWNFCN不使用图像,matlab,onclick,matlab-figure,matlab-guide,buttonclick,Matlab,Onclick,Matlab Figure,Matlab Guide,Buttonclick,我试图用一个按钮放大Mandelbrot集合的区域。我正在使用GUIDE,因此希望使用轴的按钮downfcn。我将图像存储在一个名为imag的数组中,该数组包含x和y坐标和颜色 打印前可以调用该函数,但是当我使用以下命令显示图像时,将无法再访问该函数: axes(handles.DrawAxes); cla imagesc(imag,'HitTest','Off'); ,打印函数实际上在调用时清除轴属性。因此,您可以使用hold函数(影响NextPlot属性),或者在调用image/imag
按钮downfcn
。我将图像存储在一个名为imag
的数组中,该数组包含x
和y
坐标和颜色
打印前可以调用该函数,但是当我使用以下命令显示图像时,将无法再访问该函数:
axes(handles.DrawAxes);
cla
imagesc(imag,'HitTest','Off');
,打印函数实际上在调用时清除轴属性。因此,您可以使用hold
函数(影响NextPlot
属性),或者在调用image
/imagesc
/imshow
后简单地设置轴按钮downfcn
回调
以下是一个例子:
% create axes
ax = axes();
% display image
img = imread('cameraman.tif');
imagesc(img, 'Parent',ax, 'PickableParts','none', 'HitTest','off');
axis(ax, 'image')
colormap gray
% set click callback
ax.ButtonDownFcn = @(o,e) disp('axis clicked');
以后如果需要更新图像,请使用图像句柄更新CData
属性,而不是重新绘制图像。注意:上面的示例是为R2014b中引入的HG2图形系统编写的。对于较旧的版本,应该很容易更改它。因此,我现在可以使用以下命令使buttondownfnc工作:axes\u handle=handles.DrawAxes;imagesc(imag,'HitTest','Off');设置(轴的手柄,'ButtonDownFcn',{@FcnName,a,b});但是,我不确定如何单击该位置或如何访问我的GUI的句柄。这些是单独的问题,您应该创建一个新问题并询问该部分。。但是为了让您开始,有一个CurrentPoint
属性用于检索鼠标位置。对于句柄,您可以使用findobj
或使用guidata
或getappdata
将句柄存储在UI中。