0

私はmatlabプログラムを持っており、2つの異なる図を2つの異なる図に表示する必要があります。

これに対する私の現在の試み:

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

このコードは同じ図に両方の画像を表示しますが、図 1 に表示imagesc(A)し (反復ごとに変更する)、図 2 に表示imagesc(B)する (反復ごとに変更する) 必要があります。

これは可能ですか?もしそうなら、どのようにそれを行うことができますか?

4

2 に答える 2

4

Matlab では、figurea は個々のウィンドウに対応します。したがって、2 つの Figure があると 2 つのウィンドウが作成されます。これはあなたが望むものですか、それとも同じウィンドウに 2 つのプロットが必要ですか?

figure2 つの別々のウィンドウが必要な場合は、次のようにしてみてください。

% 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

単一のウィンドウが必要で、2 つのグラフが必要な場合は、ループの前のコードを次のように置き換えることができます。

%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がグラフ/画像を描画するFigureウィンドウを次のように切り替えることができます。

   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 に答える