Main Content

グラフィックス オブジェクトの削除

グラフィックス オブジェクトの削除方法

グラフィックス オブジェクトを削除するには、関数 delete を使用します。引数としてオブジェクト ハンドルを delete に渡します。たとえば、現在の座標軸とそれに含まれるすべてのオブジェクトを削除するには、次のステートメントを使用します。

delete(gca)

複数のオブジェクトを削除するには、ハンドルの配列を delete に渡します。たとえば、h1h2h3 が削除対象のグラフィックス オブジェクトのハンドルの場合、ハンドルを連結して 1 つの配列にします。

h = [h1,h2,h3];
delete(h)

Figure を閉じると、それに含まれるすべてのオブジェクトが削除されます。たとえば、棒グラフを作成します。

f = figure;
y = rand(1,5);
bar(y)

これにより、Figure には axes オブジェクトおよび bar オブジェクトが含まれます。

ax = f.Children;
b = ax.Children;

Figure を閉じます。

close(f)

MATLAB® によって、各オブジェクトが削除されます。

f
f = 

  handle to deleted Figure
ax
ax = 

  handle to deleted Axes
b
b = 

  handle to deleted Bar

削除されたオブジェクトへのハンドル

グラフィックス オブジェクトを削除しても、MATLAB はそのオブジェクトのハンドルを含む変数は削除しません。ただし、参照していたオブジェクトがもう存在しないため、変数は無効なハンドルになります。

グラフィックス オブジェクトを明示的に削除するには、関数 delete を使用するか、グラフィックス オブジェクトを含む Figure を閉じます。たとえば、棒グラフを作成します。

f = figure;
y = rand(1,5);
b = bar(y);

棒グラフを含む Figure を閉じます。

close(f)

Figure を閉じた後もハンドル変数は存在しますが、グラフィックス オブジェクトはもう存在しません。

whos
  Name      Size            Bytes  Class                           

  f         1x1               104  matlab.ui.Figure                   
  b         1x1               104  matlab.graphics.chart.primitive.Bar 
  y         1x5                40  double 

グラフィックス オブジェクトのハンドルの有効性を判定するには、isgraphics を使用します。

isgraphics(b)
ans =

     0

無効なハンドル変数のプロパティにアクセスすることはできません。

h.FaceColor
Invalid or deleted object.

変数を削除するには、関数 clear を使用します。

clear h

参考

関連するトピック