Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Construir arreglos de objetos

Construir arreglos en el constructor

Un constructor de clases puede crear un arreglo construyendo el arreglo y devolviéndolo como el argumento de salida.

Por ejemplo, la clase ObjectArray crea un arreglo de objetos que tiene el mismo tamaño que el arreglo de entrada. Después, inicializa la propiedad Value de cada objeto con el valor del arreglo de entrada correspondiente.

classdef ObjectArray
   properties
      Value
   end
   methods
      function obj = ObjectArray(F)
         if nargin ~= 0
            m = size(F,1);
            n = size(F,2);
            obj(m,n) = obj;
            for i = 1:m
               for j = 1:n
                  obj(i,j).Value = F(i,j);
               end
            end
         end
      end
   end
end

Para asignar previamente el arreglo de objetos, asigne el último elemento del arreglo primero. MATLAB® rellena del primer al penúltimo elemento con el objeto ObjectArray.

Después de asignar previamente el arreglo, asigne cada propiedad Value del objeto al valor correspondiente en el arreglo de entrada F. Para utilizar la clase:

  • Cree un arreglo de 5 por 5 de números cuadrados mágicos

  • Cree un arreglo de objetos de 5 por 5

F = magic(5); 
A = ObjectArray(F);
whos
  Name      Size            Bytes  Class          Attributes

  A         5x5               304  ObjectArray              
  F         5x5               200  double   

Hacer referencia a valores de propiedades en arreglos de objetos

Dado un arreglo de objetos objArray en el que cada objeto tiene una propiedad PropName:

  • Haga referencia a los valores de propiedades de objetos específicos utilizando la indexación de arreglos:

    objArray(ix).PropName
  • Haga referencia a todos los valores de la misma propiedad en un arreglo de objetos utilizando la notación de puntos. MATLAB devuelve una lista de valores de propiedades separada por comas.

    objArray.PropName
  • Para asignar la lista separada por comas a una variable, encierre la expresión de la derecha entre paréntesis:

    values = [objArray.PropName]

Por ejemplo, dada la clase ObjProp:

classdef ObjProp
   properties
      RegProp
   end
   methods
      function obj = ObjProp
         obj.RegProp = randi(100);
      end
   end
end

Cree un arreglo de objetos ObjProp:

for k = 1:5
   objArray(k) = ObjProp;
end

Acceda a la propiedad RegProp del segundo elemento del arreglo de objetos utilizando la indexación de arreglos:

objArray(2).RegProp
ans =

    91

Asigne los valores de todas las propiedades RegProp a un arreglo numérico:

propValues = [objArray.RegProp]
propValues =

    82    91    13    92    64

Utilice operaciones de indexación estándar para acceder a los valores del arreglo numérico. Para obtener más información sobre los arreglos numéricos, consulte Matrices y arreglos.

Temas relacionados