0

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

我目前的尝试:

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

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

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

4

2 回答 2

4

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

如果您想要两个单独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
于 2012-12-13T15:27:57.640 回答
1

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

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

       figure(1);
       imagesc(A);

       figure(2);
       imagesc(B);

    end
于 2012-12-13T13:12:01.717 回答