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.

Acceder a valores de propiedad

Propiedades de objeto y notación de puntos

Las funciones gráficas devuelven el objeto u objetos creados por la función. Por ejemplo:

h = plot(1:10);

se refiere a la línea dibujada en el gráfico de los valores del 1 al 10.h

es una nueva sintaxis para acceder a las propiedades del objeto a partir de la versión r2014b.Notación de puntos Esta sintaxis utiliza la variable de objeto y el nombre de propiedad sensible a mayúsculas y minúsculas conectado con un punto () para formar una notación de nombre de propiedad de punto de objeto:.

object.PropertyName

Si la variable de objeto no es escalar, utilice la indexación para hacer referencia a un único objeto:

object(n).PropertyName

Variable de objeto escalar

Si es la línea creada por la función, la expresión es el valor de la propiedad de esta línea en particular:hploth.ColorColor

h.Color 
ans =           0    0.4470    0.7410

Si asigna el valor de color a una variable:

c = h.Color; 

La variable es un doble.c

whos
  Name      Size            Bytes  Class      c         1x3                24  double      h         1x1               112  matlab.graphics.chart.primitive.Line 

Puede cambiar el valor de la propiedad de esta línea con una instrucción de asignación:Color

h.Color = [0 0 1];

Utilice referencias de propiedades de notación de puntos en expresiones:

meanY = mean(h.YData);

O para cambiar el valor de la propiedad:

h.LineWidth = h.LineWidth + 0.5;

Hacer referencia a otros objetos contenidos en propiedades con múltiples referencias de puntos:

h.Annotation.LegendInformation.IconDisplayStyle 
ans =  on

Establezca las propiedades de los objetos contenidos en las propiedades:

ax = gca; ax.Title.FontWeight = 'normal';

Variable de objeto no escalar

Las funciones de gráficos pueden devolver una matriz de objetos. Por ejemplo:

y = rand(5); h = plot(y); size(h)
ans =       5     1

Acceda a la línea que representa la primera columna utilizando el índice de matriz:y

h(1).LineStyle = '--';

Utilice la función para establecer el de todas las líneas de la matriz:setLineStyle

set(h,'LineStyle','--')

Anexar datos a valores de propiedad

Con la notación de puntos, puede usar la indización "End" para anexar datos a las propiedades que contienen matrices de datos, como la línea y.XDataYData Por ejemplo, este código actualiza la línea y juntos para hacer crecer la línea.XDataYData Debe asegurarse de que el tamaño de los datos x e y de la línea es el mismo antes de renderizar con la llamada a o volver al símbolo del sistema.drawnowMATLAB®

h = plot(1:10); for k = 1:5    h.XData(end + 1) = h.XData(end) + k;    h.YData(end + 1) = h.YData(end) + k;    drawnow end

Las variables de objetos gráficos son identificadores

Las variables de objeto devueltas por las funciones gráficas son.Manijas Los identificadores son referencias a los objetos reales. Las variables de objeto que son identificadores se comportan de forma específica cuando se copian y cuando se elimina el objeto.

Copiar variable de objeto

Por ejemplo, cree un gráfico con una línea:

h = plot(1:10);

Ahora copie la variable de objeto a otra variable y establezca un valor de propiedad con la nueva variable de objeto:

h2 = h; h2.Color = [1,0,0]

Asignar la variable de objeto para crear una copia del identificador, pero no el objeto al que hace referencia la variable.hh2 El valor de la propiedad a la que se accede desde la variable es el mismo que el que se accede desde la variable.Colorhh2

h.Color
ans =       1     0     0

y hacer referencia al mismo objeto.hh2 La copia de una variable de objeto de identificador no copia el objeto.

Eliminar variables de objeto

Ahora hay dos variables de objeto en el espacio de trabajo que hacen referencia a la misma línea.

whos
  Name      Size            Bytes  Class                   h         1x1               112  matlab.graphics.chart.primitive.Line   h2        1x1               112  matlab.graphics.chart.primitive.Line

Ahora cierre la figura que contiene el gráfico de líneas:

close gcf

El objeto de línea ya no existe, pero las variables de objeto que hacen referencia a la línea siguen existiendo:

whos
  Name      Size            Bytes  Class                   h         1x1               112  matlab.graphics.chart.primitive.Line   h2        1x1               112  matlab.graphics.chart.primitive.Line

Sin embargo, las variables de objeto ya no son válidas:

h.Color
Invalid or deleted object.
h2.Color = 'blue'
Invalid or deleted object.

Para eliminar las variables de objeto no válidas, utilice:clear

clear h h2

Enumerar propiedades de objeto

Para ver qué propiedades contiene un objeto, utilice la función:get

get(h)

Devuelve una lista de las propiedades del objeto y su valor actual:MATLAB

    AlignVertexCenters: 'off'             Annotation: [1x1 matlab.graphics.eventdata.Annotation]           BeingDeleted: 'off'             BusyAction: 'queue'          ButtonDownFcn: ''               Children: []               Clipping: 'on'                  Color: [0 0.4470 0.7410] ...              LineStyle: '-'              LineWidth: 0.5000                 Marker: 'none' ...

Puede ver los valores de las propiedades con un conjunto enumerado de valores posibles mediante la función:set

set(h,'LineStyle')
    '-'     '--'     ':'     '-.'     'none'

Para mostrar todas las propiedades configurables, incluidos los valores posibles para las propiedades con un conjunto de valores enumerado, utilívalas con la variable de objeto:set

set(h)

Modifique las propiedades con set y Get

También puede acceder y modificar las propiedades mediante las funciones y.setget

La sintaxis básica para establecer el valor de una propiedad en un objeto existente es:

set(object,'PropertyName',NewPropertyValue)

Para consultar el valor actual de una propiedad de objeto específica, utilice una instrucción del formulario:

returned_value = get(object,'PropertyName');

Los nombres de propiedad son siempre vectores de caracteres. Puede utilizar comillas simples o una variable que sea un vector de caracteres. Los valores de propiedad dependen de la propiedad concreta.

Operaciones multiobjeto/propiedad

Si el argumento Object es una matriz, establece el valor especificado en todos los objetos identificados.MATLAB Por ejemplo:

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

Establezca todas las líneas en rojo:

set(h,'Color','red')

Para establecer las mismas propiedades en un número de objetos, especifique los nombres de propiedad y los valores de propiedad mediante una estructura o matriz de celdas. Por ejemplo, defina una estructura para establecer las propiedades de los ejes de forma adecuada para mostrar un gráfico concreto:

view1.CameraViewAngleMode = 'manual'; view1.DataAspectRatio = [1 1 1]; view1.Projection = 'Perspective';

Para establecer estos valores en los ejes actuales, escriba:

set(gca,view1)

Consultar varias propiedades

Puede definir una matriz de celdas de nombres de propiedad y utilizarla para obtener los valores de esas propiedades. Por ejemplo, supongamos que desea consultar los valores de las propiedades del "modo de cámara" de los ejes. En primer lugar, defina la matriz de celdas:

camModes = {'CameraPositionMode','CameraTargetMode',... 'CameraUpVectorMode','CameraViewAngleMode'};

Utilice esta matriz de celdas como argumento para obtener los valores actuales de estas propiedades:

get(gca,camModes) 
ans =       'auto' 'auto' 'auto' 'auto'