子图函数在不同的matlab视图中调用

时间:2012-07-11 22:04:24

标签: matlab

我已经构建了一个由2个视图组成的matlab应用程序,每个视图都知道对方的句柄。 主视图启动第二个视图并获取其句柄。

然后在主视图中调用函数subplot(),并使用imshow()显示图像。 我想要做的是在第二个视图中显示图像的几个细节,也可以使用subplot()imshow()函数。

使用第二个视图的句柄,我从主视图调用第二个视图中定义的函数,该函数进一步调用subplot()和imshow()函数以获取详细信息。

主要视图中的初始图像消失后会被细节取代。 任何人都可以给我一个建议,以便我可以在主视图中显示图像,同时在第二个视图中显示细节吗?

1 个答案:

答案 0 :(得分:0)

您可能需要指定放置图像或数据的轴。 imshow命令允许您指定用于显示Parent参数的图像的轴。

将此与subplot返回其创建的轴的句柄的事实相结合。

h = subplot(m,n,i) %# create a subplot axes
imshow(img,'Parent',h) %# display an image in the previously created axis

假设您可以在两组代码之间传递信息,则需要检索您希望图像显示的轴的句柄,并在调用imshow时使用该句柄。这是一个例子

hFig = figure;
h(1) = subplot(2,2,1)
h(2) = subplot(2,2,2)
setappdata(hFig,'axisHandles',h) %# stores the axes handles in appdata of the figure
....

现在,当您想要在第一个图中显示一些图像时,您可以执行以下操作,假设您知道每个图形窗口的句柄。

h=getappdata(hFig,'axisHandles')
imshow(img,'Parent',h(1))