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
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: