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.

Matrices de gráficos

Las matrices de gráficos pueden contener los identificadores de los objetos gráficos. Por ejemplo, esta llamada a la función devuelve una matriz que contiene cinco identificadores de objeto de línea:plot

y = rand(20,5); h = plot(y)
h =     5x1 Line array:    Line   Line   Line   Line   Line

Esta matriz solo contiene identificadores para los objetos de línea. Sin embargo, las matrices de gráficos pueden contener más de un tipo de objeto de gráficos. Es decir, las matrices de gráficos pueden ser heterogéneas.

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

hf = figure; ha = axes; hl = plot(1:10); harray = [hf,ha,hl] 
harray =     1x3 graphics array:      Figure    Axes      Line

Las matrices de gráficos siguen las mismas reglas que cualquier matriz.MATLAB® Por ejemplo, las dimensiones del elemento de matriz deben coincidir. En este código, Plot devuelve una matriz de 5 por 1 línea:

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 una matriz, debe transponer:hl

harray = [hf,ha,hl'] 
harray =     1x7 graphics array:     Figure    Axes      Line      Line      Line      Line      Line

No se pueden concatenar datos numéricos con identificadores de objeto, con la excepción del identificador único especificado por la propiedad de la figura.Number Por ejemplo, si hay una figura existente con su propiedad establecida en 1, puede hacer referencia a esa figura por este número:Number

figure(1) aHandle = axes; [aHandle,1] 
ans =     1x2 graphics array:      Axes      Figure

Las mismas reglas para la formación de matrices se aplican a la asignación indexada. Por ejemplo, puede crear una matriz de identificador 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