08.11.2014 Views

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

Aprenda Matlab 6.1 - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 50<br />

>> alu.nombre='Miguel'<br />

alu =<br />

nombre: 'Miguel'<br />

>> alu.carnet=75482<br />

alu =<br />

nombre: 'Miguel'<br />

carnet: 75482<br />

>> alu<br />

alu =<br />

nombre: 'Miguel'<br />

carnet: 75482<br />

Se acce<strong>de</strong> a los miembros o campos <strong>de</strong> una estructura por medio <strong>de</strong>l operador punto (.), que<br />

une el nombre <strong>de</strong> la estructura y el nombre <strong>de</strong>l campo (por ejemplo: alu.nombre).<br />

También pue<strong>de</strong> crearse la estructura por medio <strong>de</strong> la función struct(), como por ejemplo,<br />

>> al = struct('nombre', 'Ignacio', 'carnet', 76589)<br />

al =<br />

nombre: 'Ignacio'<br />

carnet: 76589<br />

Los nombres <strong>de</strong> los campos se pasan a la función struct() entre apóstrofos ('), seguidos <strong>de</strong>l<br />

valor que se les quiere dar. Este valor pue<strong>de</strong> ser la ca<strong>de</strong>na vacía ('') o la matriz vacía ([]).<br />

Pue<strong>de</strong>n crearse vectores y matrices (e hipermatrices) <strong>de</strong> estructuras. Por ejemplo, la sentencia,<br />

>> alum(10) = struct('nombre', 'Ignacio', 'carnet', 76589)<br />

crea un vector <strong>de</strong> 10 elementos cada uno <strong>de</strong> los cuales es una estructura tipo alumno. Sólo el<br />

elemento 10 <strong>de</strong>l vector es inicializado con los argumentos <strong>de</strong> la función struct(); el resto <strong>de</strong> los<br />

campos se inicializan con una ca<strong>de</strong>na vacía o una matriz vacía 11 . Para dar valor a los campos <strong>de</strong> los<br />

elementos restantes se pue<strong>de</strong> utilizar un bucle for con sentencias <strong>de</strong>l tipo:<br />

>> alum(i).nombre='Noelia', alum(i).carnet=77524;<br />

MATLAB permite añadir un nuevo campo a una estructura en cualquier momento. La<br />

siguiente sentencia aña<strong>de</strong> el campo edad a todos los elementos <strong>de</strong>l vector alum, aunque sólo se da<br />

valor al campo <strong>de</strong>l elemento 5,<br />

>> alum(5).edad=18;<br />

Para ver el campo edad en los 10 elementos <strong>de</strong>l vector pue<strong>de</strong> teclearse el comando:<br />

>> alum.edad<br />

5.3.2. FUNCIONES PARA OPERAR CON ESTRUCTURAS<br />

Las estructuras <strong>de</strong> MATLAB disponen <strong>de</strong> funciones que facilitan su uso. Algunas <strong>de</strong> estas<br />

funciones son las siguientes:<br />

fieldnames()<br />

isfield(ST,s)<br />

isstruct(ST)<br />

rmfield(ST,s)<br />

getfield(ST,s)<br />

<strong>de</strong>vuelve un vector <strong>de</strong> celdas con ca<strong>de</strong>nas <strong>de</strong> caracteres que recogen los<br />

nombres <strong>de</strong> los campos <strong>de</strong> una estructura<br />

permite saber si la ca<strong>de</strong>na s es un campo <strong>de</strong> una estructura ST<br />

permite saber si ST es o no una estructura<br />

elimina el campo s <strong>de</strong> la estructura ST<br />

<strong>de</strong>vuelve el valor <strong>de</strong>l campo especificado. Si la estructura es un array<br />

hay que pasarle los índices como cell array (entre llaves {}) como<br />

segundo argumento<br />

11<br />

Esta forma <strong>de</strong> crear arrays <strong>de</strong> estructuras da error si la estructura ha sido previamente <strong>de</strong>clarada global.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!