web-dev-qa-db-ja.com

MATLABで新しいFigureを作成する方法は?

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

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

51
Jader Dias
figure;
plot(something);

または

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

等.

75

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

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

figure(1);
plot(...)

figure(2);
plot(...)

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

figure;
plot(...)

figure;
plot(...)

目的のプロットで図6と7を作成し、以前のプロット1〜5だけを残しました。

22
matt

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

figure(N);
clf;
plot(something);
...
12
Jason S

すでに述べたように: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)を呼び出します。これで新しいプロットが表示されます。

3
Grebu

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

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

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

1
gariepy

これと同じくらい簡単

figure, plot(yourfigure);
0
articuno