Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Arreglos gráficos

Los arreglos gráficos pueden contener los identificadores de cualquier objeto gráfico. Por ejemplo, esta llamada a la función plot devuelve un arreglo que contiene cinco identificadores de objetos de línea:

y = rand(20,5);
h = plot(y)
h = 

  5x1 Line array:

  Line
  Line
  Line
  Line
  Line

Este arreglo contiene solo identificadores de objetos de línea. Sin embargo, los arreglos gráficos pueden contener más de un tipo de objeto gráfico. Es decir, los arreglos gráficos pueden ser heterogéneos.

Por ejemplo, puede concatenar los identificadores de la figura, los ejes y los objetos de línea en un arreglo, harray:

hf = figure;
ha = axes;
hl = plot(1:10);
harray = [hf,ha,hl]
harray = 

  1x3 graphics array:

    Figure    Axes      Line

Los arreglos gráficos siguen las mismas reglas que los arreglos de MATLAB®. Por ejemplo, las dimensiones de los elementos del arreglo deben coincidir. En este código, la gráfica devuelve un arreglo de líneas de 5 por 1:

hf = figure;
ha = axes;
hl = plot(rand(5));
harray = [hf,ha,hl];
Error using horzcat
Dimensions of matrices being concatenated are not consistent.

Para formar un arreglo, debe transponer hl:

harray = [hf,ha,hl']
harray = 

  1x7 graphics array:

   Figure    Axes      Line      Line      Line      Line      Line

No puede concatenar datos numéricos con identificadores de objeto, con la excepción del único identificador especificado por la propiedad Number de la figura. Por ejemplo, si existe una figura con la propiedad Number definida en 1, puede hacer referencia a dicha figura por este número:

figure(1)
aHandle = axes;
[aHandle,1]
ans = 

  1x2 graphics array:

    Axes      Figure

Las mismas reglas para la formación de arreglos se aplican a la asignación indexada. Por ejemplo, puede crear un arreglo de identificadores con un bucle 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