我有一个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)
(并在其上更改它)每次迭代也是如此)。
这可能吗?如果是这样,怎么办呢?
答案 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