Está en la página 1de 4

LAUREATE

INTERNATIONAL UNIVERSITIES

UNIVERSIDAD PRIVADA DEL NORTE Laureate International Universities

14. ESTRUCTURAS EN MATLAB.


Una estructura (struc) es una agrupaci on de datos de tipo diferente bajo un mismo nombre. Estos datos se llaman miembros (members) o campos (elds). Una estructura es un nuevo tipo de dato del que luego se pueden crear muchas variables (objetos o instances). Por ejemplo, la estructura alumno puede contener los campos nombre (una cadena de caracteres) y carnet (un n umero).

1.

Creaci on de estructuras.

En MATLAB la estructura alumno se crea creando un objeto de dicha estructura. A diferencia de otros lenguajes de programaci on, no hace falta denir previamente el modelo o patr on de la estructura. Una posible forma de hacerlo es crear uno a uno los distintos campos, como en el ejemplo siguiente: >> alu.nombre=Miguel alu = nombre: Miguel >> alu.carnet=75482 alu = nombre: Miguel carnet: 75482 >> alu alu = nombre: Miguel carnet: 75482 >>

Se accede a los miembros o campos de una estructura por medio del operador punto (.), que une el nombre de la estructura y el nombre del campo (por ejemplo: alu.nombre).
DEPARTAMENTO DE CIENCIAS - CAJAMARCA

Tambi en puede crearse la estructura por medio de la funci on struct(), como por ejemplo,

>> al = struct(nombre, Ignacio, carnet, 76589) al = nombre: Ignacio carnet: 76589

Los nombres de los campos se pasan a la funci on struct() entre ap ostrofos (), seguidos del valor que se les quiere dar. Este valor puede ser la cadena vac a () o la matriz vac a ([]). Pueden crearse vectores y matrices (e hipermatrices) de estructuras. Por ejemplo, la sentencia,

>> alum(10) = struct(nombre, Ignacio, carnet, 76589)

crea un vector de 10 elementos cada uno de los cuales es una estructura tipo alumno. S olo el elemento 10 del vector es inicializado con los argumentos de la funci on struct(); el resto de los campos se inicializan con una cadena vac a o una matriz vac a. Para dar valor a los campos de los elementos restantes se puede utilizar un bucle for con sentencias del tipo:

>> alum(i).nombre=Noelia, alum(i).carnet=77524;

MATLAB permite a nadir un nuevo campo a una estructura en cualquier momento. La siguiente sentencia a nade el campo edad a todos los elementos del vector alum, aunque s olo se da valor al campo del elemento 5,

>> alum(5).edad=18;

Para ver el campo edad en los 10 elementos del vector puede teclearse el comando: >> alum.edad

DEPARTAMENTO DE CIENCIAS - CAJAMARCA

PROGRAMACIN PARA INGENIEROS 2010-1

2.

Funciones para operar con estructuras.

Las estructuras de MATLAB disponen de funciones que facilitan su uso. Algunas de estas funciones son las siguientes: eldnames().- devuelve un vector de celdas con cadenas de caracteres que recogen los nombres de los campos de una estructura. iseld(ST,s).- permite saber si la cadena s es un campo de una estructura ST. isstruct(ST).- permite saber si ST es o no una estructura. rmeld(ST,s).- elimina el campo s de la estructura ST. geteld(ST,s).- devuelve el valor del campo especicado. Si la estructura es un array hay que pasarle los ndices como cell array (entre llaves ) como segundo argumento. seteld(ST,s,v).- da el valor v al campo s de la estructura ST. Si la estructura es un array, hay que pasarle los ndices como cell array (entre llaves ) como segundo argumento. MATLAB permite denir estructuras anidadas, es decir una estructura con campos que sean otras estructuras. Para acceder a los campos de la estructura m as interna se utiliza dos veces el operador punto (.), como puede verse en el siguiente ejemplo, en el que la estructura clase contiene un campo que es un vector alum de alumnos, >> clase=struct(curso,primero,grupo,A, ... alum, struct(nombre,Juan, edad, 19)) clase = curso: primero grupo: A alum: [1x1 struct] >> clase.alum(2).nombre=Mar a; >> clase.alum(2).edad=17; >> clase.alum(2) ans = nombre: Mar a edad: 17 >> clase.alum(1) ans = nombre: Juan edad: 19

DEPARTAMENTO DE CIENCIAS - CAJAMARCA

PROGRAMACIN PARA INGENIEROS 2010-1

Indice
1. Creaci on de estructuras. 2. Funciones para operar con estructuras. 1 3

DEPARTAMENTO DE CIENCIAS - CAJAMARCA

PROGRAMACIN PARA INGENIEROS 2010-1

También podría gustarte