グラフィックス オブジェクトの削除
グラフィックス オブジェクトの削除方法
グラフィックス オブジェクトを削除するには、関数 delete
を使用します。引数としてオブジェクト ハンドルを delete
に渡します。たとえば、現在の座標軸とそれに含まれるすべてのオブジェクトを削除するには、次のステートメントを使用します。
delete(gca)
複数のオブジェクトを削除するには、ハンドルの配列を delete
に渡します。たとえば、h1
、h2
、h3
が削除対象のグラフィックス オブジェクトのハンドルの場合、ハンドルを連結して 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