Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTERNATIONAL UNIVERSITIES
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,
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,
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:
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
2.
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
Indice
1. Creaci on de estructuras. 2. Funciones para operar con estructuras. 1 3