我创建了一个有 2 个子图的 GUI。第一个显示原始图像。
当我想放大第一个子图然后在第二个子图中显示时,我该怎么办?提前致谢
我创建了一个有 2 个子图的 GUI。第一个显示原始图像。
当我想放大第一个子图然后在第二个子图中显示时,我该怎么办?提前致谢
您可以通过将数据从第一个子图复制到第二个子图并设置轴限制来做到这一点。这是一个不使用 GUI 但应该以相同方式工作的示例:
figure
% create two subplots
ax1 = subplot(2,1,1);
ax2 = subplot(2,1,2);
% display some data in the first subplot
axes(ax1);
imagesc(spiral(10));
% get the range of the axes in the first subplot
xLim1 = get(ax1, 'XLim');
yLim1 = get(ax1, 'YLim');
% Ask the user to zoom in. Instead of pressing
% enter, there could be a button to push in
% a GUI
reply = input('Zoom in and press enter');
% Get the new, zoomed in axes
zoomedXLim = get(ax1, 'XLim');
zoomedYLim = get(ax1, 'YLim');
% get the data from the first axis and display
% it in the second axis.
data = getimage(ax1);
axes(ax2)
imagesc(data)
% set the second axis to the zoomed range
set(ax2, 'XLim', zoomedXLim)
set(ax2, 'YLim', zoomedYLim)
title('zoomed image')
% return the first axis to its original range.
set(ax1, 'XLim', xLim1)
set(ax1, 'YLim', yLim1)
axes(ax1)
title('original image')
生成的图形将如下所示: