グラフィックス配列
グラフィックス配列には、グラフィックス オブジェクトのハンドルを格納できます。たとえば、関数 plot
の次の呼び出しは、5 つの line オブジェクト ハンドルを含む配列を返します。
y = rand(20,5); h = plot(y)
h = 5x1 Line array: Line Line Line Line Line
この配列は、line オブジェクトへのハンドルのみを含みます。ただし、グラフィックス配列には複数のタイプのグラフィックス オブジェクトを含めることができます。つまり、グラフィックス配列は異種混合にすることができます。
たとえば、figure オブジェクト、axes オブジェクトおよび line オブジェクトのハンドルを 1 つの配列、harray
に連結することができます。
hf = figure; ha = axes; hl = plot(1:10); harray = [hf,ha,hl]
harray = 1x3 graphics array: Figure Axes Line
グラフィックス配列は MATLAB® 配列と同じルールに従います。たとえば、配列の要素の次元は一致しなければなりません。次のコードでは、plot は 5 行 1 列のライン配列を返します。
hf = figure;
ha = axes;
hl = plot(rand(5));
harray = [hf,ha,hl];
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
配列を形成するには、hl
を転置しなければなりません。
harray = [hf,ha,hl']
harray = 1x7 graphics array: Figure Axes Line Line Line Line Line
Figure の Number
プロパティに指定された固有の識別子以外の数値データをオブジェクト ハンドルと連結することはできませんたとえば、Number
プロパティが 1 に設定された Figure がある場合、その番号によってこの Figure を参照できます。
figure(1) aHandle = axes; [aHandle,1]
ans = 1x2 graphics array: Axes Figure
配列形成のルールは、インデックス付きの代入にも適用されます。たとえば、for
ループを使用して、ハンドル配列を作成できます。
harray = gobjects(1,7); hf = figure; ha = axes; hl = plot(rand(5)); harray(1) = hf; harray(2) = ha; for k = 1:length(hl) harray(k+2) = hl(k); end