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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 5: Otros tipos <strong>de</strong> datos <strong>de</strong> MATLAB página 51<br />

setfield(ST,s,v)<br />

da el valor v al campo s <strong>de</strong> la estructura ST. Si la estructura es un array,<br />

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

segundo argumento<br />

MATLAB permite <strong>de</strong>finir estructuras anidadas, es <strong>de</strong>cir una estructura con campos que sean<br />

otras estructuras. Para acce<strong>de</strong>r a los campos <strong>de</strong> la estructura más interna se utiliza dos veces el<br />

operador punto (.), como pue<strong>de</strong> verse en el siguiente ejemplo, en el que la estructura clase contiene<br />

un campo que es un vector alum <strong>de</strong> alumnos,<br />

>> clase=struct('curso','primero','grupo','A', ...<br />

'alum', struct('nombre','Juan', 'edad', 19))<br />

clase =<br />

curso: 'primero'<br />

grupo: 'A'<br />

alum: [1x1 struct]<br />

>> clase.alum(2).nombre='María';<br />

>> clase.alum(2).edad=17;<br />

>> clase.alum(2)<br />

ans =<br />

nombre: 'María'<br />

edad: 17<br />

>> clase.alum(1)<br />

ans =<br />

nombre: 'Juan'<br />

edad: 19<br />

Las estructuras se generalizan con las clases y los objetos, que no se verán en este manual.<br />

5.4. Vectores o matrices <strong>de</strong> celdas (Cell Arrays)<br />

Un vector (matriz o hipermatriz) <strong>de</strong> celdas es un vector (matriz o hipermatriz) cuyos elementos son<br />

cada uno <strong>de</strong> ellos una variable <strong>de</strong> tipo cualquiera. En un array ordinario todos sus elementos son<br />

números o ca<strong>de</strong>nas <strong>de</strong> caracteres. Sin embargo, en un array <strong>de</strong> celdas, el primer elemento pue<strong>de</strong> ser<br />

un número; el segundo una matriz; el tercero una ca<strong>de</strong>na <strong>de</strong> caracteres; el cuarto una estructura, etc.<br />

5.4.1. CREACIÓN DE VECTORES Y MATRICES DE CELDAS<br />

Obsérvese por ejemplo cómo se crea, utilizando llaves {}, el siguiente vector <strong>de</strong> celdas,<br />

>> vc(1)={[1 2 3]}<br />

vc =<br />

[1x3 double]<br />

>> vc(2)={'mi nombre'}<br />

vc =<br />

[1x3 double] 'mi nombre'<br />

>> vc(3)={rand(3,3)}<br />

vc =<br />

[1x3 double] 'mi nombre' [3x3 double]<br />

Es importante que el nombre <strong>de</strong>l vector <strong>de</strong> celdas vc no haya sido utilizado previamente para<br />

otra variable (si así fuera, se obtendría un error). Si es preciso se utiliza el comando clear.<br />

Obsérvese que para crear un vector <strong>de</strong> celdas los valores asignados a cada elemento se han<br />

<strong>de</strong>finido entre llaves {...}.<br />

Otra nomenclatura alternativa y similar, que también utiliza llaves, es la que se muestra a<br />

continuación:

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

Saved successfully!

Ooh no, something went wrong!