如何在差异图片matlab上绘制图形

时间:2012-12-13 12:49:27

标签: matlab visualization

我有一个matlab程序,我需要在2个单独的图中显示2个不同的图片。

我目前的尝试:

fig = figure;
for i = 1:n
   ...// calc matrix A
   ...// calc matrix B
   imagesc(A);
   imagesc(B);
end

此代码在同一图上显示两个图像,但我需要在figure1上显示imagesc(A)(并在每次迭代时更改它),并在figure2上显示imagesc(B)(并在其上更改它)每次迭代也是如此)。

这可能吗?如果是这样,怎么办呢?

2 个答案:

答案 0 :(得分:4)

在Matlab中,figure对应于单个窗口。因此,有两个数字将创建两个窗口。这是你想要的,还是在同一个窗口中想要两个图?

如果您想要两个单独的figure窗口,请尝试以下方法:

% create the 1st figure
fig1 = figure; 
% create an axes in Figure1
ax1 = axes('Parent', fig1);

% create the 2nd figure
fig2 = figure; 
 % create an axes in Figure2
ax2 = axes('Parent', fig2);

for i = 1:n
   ...// calc matrix A
   ...// calc matrix B
   % draw A in ax1 
   imagesc(A, 'Parent', ax1); 
   % draw B in ax2
   imagesc(B, 'Parent', ax2); 

   % pause the loop so the images can be inspected
   pause;
end

如果您想要一个窗口,但有两个图表,您可以在循环之前用以下代码替换代码:

%create the figure window
fig = Figure;

% create 2 side by side plots in the same window
ax(1) = subplot(211);
ax(2) = subplot(212);

% Insert loop code here

答案 1 :(得分:1)

你可以使用figure()函数在matlab绘制图形/图像的图形窗口之间切换:

   for i = 1:n
       ...// calc matrix A
       ...// calc matrix B

       figure(1);
       imagesc(A);

       figure(2);
       imagesc(B);

    end