質問

通常、 MATLAB でプロットすると、常に同じ図に描画されます。新しい図形を描画するにはどうすればよいですか?

かなり初歩的であることは知っていますが、Google検索を使用して見つけることはできません。

役に立ちましたか?

解決

figure;
plot(something);

または

figure(2);
plot(something);
...
figure(3);
plot(something else);
...

etc。

他のヒント

「figure(1)、figure(2)、...」を実行中ほとんどの場合に問題を解決しますが、すべての場合に問題を解決するわけではありません。デスクトップ上に多数のMATLABフィギュアがあり、開いている数がコードを実行する前に時々異なると仮定します。提供された回答を使用して、これらの数字を上書きしますが、これは望ましくありません。簡単な回避策は、コマンド" figure"を使用することです。プロットする前に。

例:実行した以前のスクリプトのデスクトップに5つの数字があり、使用しています

figure(1);
plot(...)

figure(2);
plot(...)

デスクトップの図の上にプロットしました。ただし、コード

figure;
plot(...)

figure;
plot(...)

目的のプロットで図6と7を作成し、以前のプロット1〜5はそのままにしておきます。

注意すべきもう1つの点は、新しいプロットを開始するときに clf (図をクリア)コマンドを使用することです。そうしないと、既存の図にプロットしている可能性があります( figure コマンドだけでは不可能ですが、 figure(2)を実行すると、すでに図が存在する可能性があります# 2)、複数の軸、またはちょっとおかしい軸。 clf を使用して、ゼロから始めることを確認します。

figure(N);
clf;
plot(something);
...

すでに述べたように、 figure は次のプロット用に新しい図を作成します。 figure の呼び出し中に、構成することもできます。例:

figHandle = figure('Name', 'Name of Figure', 'OuterPosition',[1, 1, scrsz(3), scrsz(4)]);

この例では、ウィンドウの名前と、使用する画面に関連するウィンドウの外側のサイズを設定します。 ここで、 figHandle は結果のFigureのハンドルであり、後で外観と内容を変更するために使用できます。例:

ドット表記法:

figHandle.PaperOrientation = 'portrait';
figHandle.PaperUnits = 'centimeters';

古いスタイル:

set(figHandle, 'PaperOrientation', 'portrait', 'PaperUnits', 'centimeters');

ドット表記または set のハンドルを使用して、印刷のオプションをここで構成します。

異なる名前の図のハンドルを保持することにより、複数のアクティブな図と対話できます。既存の図をアクティブとして設定するには、 figure(figHandle)を呼び出します。これで新しいプロットが表示されます。

別の一般的なオプションは、単一のウィンドウに複数のプロットが必要な場合です

f = figure;
hold on
plot(x1,y1)
plot(x2,y2)
...

同じ(新しい)図に複数のデータセットをプロットします。

これと同じくらい簡単-

figure, plot(yourfigure);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top