Graphics arrays can contain the handles of any graphics objects.
For example, this call to the
plot function returns
an array containing five line object handles:
y = rand(20,5); h = plot(y)
h = 5x1 Line array: Line Line Line Line Line
This array contains only handles to line objects. However, graphics arrays can contain more than one type of graphics object. That is, graphics arrays can be heterogeneous.
For example, you can concatenate the handles of the figure,
axes, and line objects into one array,
hf = figure; ha = axes; hl = plot(1:10); harray = [hf,ha,hl]
harray = 1x3 graphics array: Figure Axes Line
Graphics arrays follow the same rules as any MATLAB® array. For example, array element dimensions must agree. In this code, plot returns a 5-by-1 Line array:
hf = figure; ha = axes; hl = plot(rand(5)); harray = [hf,ha,hl]; Error using horzcat Dimensions of matrices being concatenated are not consistent.
To form an array, you must transpose
harray = [hf,ha,hl']
harray = 1x7 graphics array: Figure Axes Line Line Line Line Line
You cannot concatenate numeric data with object handles, with
the exception of the unique identifier specified by the figure
For example, if there is an existing figure with its
set to 1, you can refer to that figure by this number:
figure(1) aHandle = axes; [aHandle,1]
ans = 1x2 graphics array: Axes Figure
The same rules for array formation apply to indexed assignment.
For example, you can build a handle array with a
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