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.