Una clase es un modelo que define las variables y los métodos que proporcionan una base común compartida para sus objetos correspondientes. Define un objeto que encapsula datos y las operaciones realizadas en esos datos. classdef es una palabra clave utilizada para definir clases de MATLAB.
Sintaxis para definir una clase:
classdef (Attributes) ClassName < SuperclassName properties (Attributes) PropertyName PropertyName size class {validation functions} end methods (Attributes) function obj = methodName(obj,arg2,...) ... end end events (Attributes) EventName end end
Componentes de la clase MATLAB:
La clase de MATLAB tiene tres componentes principales (que son funciones de MATLAB que se utilizan para consultar a los miembros de la clase respectivos sobre un objeto o nombre de clase determinado):
- Bloques de propiedades: Definen las propiedades que almacenan datos para cada uno de los objetos de la clase.
- Bloques de métodos: contienen un conjunto de funciones que definen las operaciones que se pueden realizar en cada objeto de la clase.
- Bloques de eventos: defina mensajes que un objeto enviará a otras partes de una aplicación cuando algo cambie en ese objeto.
Aquí hay un ejemplo de una clase de MATLAB,
SimpleClass define una propiedad y dos métodos que operan en los datos de esa propiedad:
Matlab
classdef SimpleClass properties Value {mustBeNumeric} end methods function R = roundOff(object) R = round([object.Value],2); end function R = DivideBy(object,n) R = [object.Value] / n; end end end
En el ejemplo anterior:
- Valor : propiedad que contiene los datos numéricos almacenados en un objeto de la clase.
- roundOff : método que redondea el valor de la propiedad a dos decimales.
- DivideBy : método que multiplica el valor de la propiedad por el número especificado.
Para usar la clase:
- Guarde la definición de clase con el mismo nombre que la clase, mantenga la extensión del archivo como (.m).
- Crear un objeto de la clase.
- Acceda a las propiedades para asignar datos y llame a métodos para realizar una operación en los datos.
Objetos
Similar a cualquier otro lenguaje de programación, los objetos en MATLAB son instancias de sus respectivas clases. En MATLAB, los objetos de una clase se pueden crear de dos formas:
Crear un objeto de la clase usando el nombre de la clase.
Crear objeto: a continuación se muestra el script para crear un objeto de la clase anterior.
Matlab
a = SimpleClass
a = SimpleClass with properties: Value: []
Inicialmente, el valor de la propiedad está vacío.
Propiedades de acceso: usando la variable del objeto y un punto antes del nombre de la propiedad, podemos asignar valor a la propiedad Valor:
Matlab
a.Value = pi;
El valor de la propiedad se devuelve si usamos la notación de puntos sin la asignación:
Matlab
a.Value
Producción:
ans = 3.1416
Métodos de llamada: llame al método roundOff en el objeto a:
Matlab
roundOff(a)
Producción:
ans = 3.1400
Pase el objeto como primer argumento a un método que toma varios argumentos, como en esta llamada al método DivideBy :
Matlab
DivideBy(a,3)
Producción:
ans = 1.0472
El método también se puede llamar usando la notación de puntos:
Matlab
a.DivideBy(3)
Producción:
ans = 1.0472
No es obligatorio pasar el objeto explícitamente como argumento cuando se usa la notación de puntos.
Crear objeto usando Constructor
También podemos crear un objeto (o una array de objetos) utilizando un constructor de clase. Los métodos de constructor nos permiten pasar argumentos al constructor, que puede asignar como valores de propiedad. La función mustBeNumeric restringe los posibles valores de la propiedad SimpleClass Value. El constructor se llama como cualquier función de MATLAB. Puede acceder a las propiedades de los objetos y los métodos de los objetos se llaman igual que las funciones ordinarias de MATLAB.
Aquí hay un constructor para la clase SimpleClass . Cuando se llama al constructor con un argumento de entrada, se le asigna la propiedad Value, pero si se llama sin un argumento de entrada, tiene un valor predeterminado de vacío ([]).
Matlab
classdef SimpleClass properties Value {mustBeNumeric} end methods function obj = SimpleClass(val) if nargin == 1 obj.Value = val; end end end end
Podemos crear un objeto y establecer el valor de la propiedad en un solo paso agregando un constructor a la definición de la clase:
Matlab
a = SimpleClass(pi/3)
Producción:
a = SimpleClass with properties: Value: 1.0472
El constructor también se usa para realizar operaciones relacionadas con la creación de objetos de la clase.
Nota: los objetos de MATLAB tienen características únicas en relación con otros lenguajes. Por ejemplo, puede modificar una clase en cualquier momento y los objetos de esa clase se actualizarán inmediatamente. La gestión del ciclo de vida de los objetos en MATLAB se realiza sin necesidad de una asignación o desasignación de memoria explícita.
Un complemento de la creación de objetos de la clase SimpleClass en MATLAB:
Publicación traducida automáticamente
Artículo escrito por tanujapal8111999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA