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.
<strong>Aprenda</strong> <strong>Matlab</strong> <strong>6.1</strong> como si estuviera en Primero página 46<br />
5. OTROS TIPOS DE DATOS DE MATLAB<br />
En los Capítulos prece<strong>de</strong>ntes se ha visto la “especialidad” <strong>de</strong> MATLAB: trabajar con vectores y<br />
matrices. En este Capítulo se va a ver que MATLAB pue<strong>de</strong> también trabajar con otros tipos <strong>de</strong><br />
datos:<br />
1. Conjuntos o ca<strong>de</strong>nas <strong>de</strong> caracteres, fundamentales en cualquier lenguaje <strong>de</strong> programación.<br />
2. Hipermatrices, o matrices <strong>de</strong> más <strong>de</strong> dos dimensiones.<br />
3. Estructuras, o agrupaciones bajo un mismo nombre <strong>de</strong> datos <strong>de</strong> naturaleza diferente.<br />
4. Vectores o matrices <strong>de</strong> celdas (cell arrays), que son vectores o matrices cuyos elementos<br />
pue<strong>de</strong>n ser cualquier otro tipo <strong>de</strong> dato.<br />
5. Matrices dispersas o matrices dispersas, que son matrices que pue<strong>de</strong>n ser <strong>de</strong> muy gran<br />
tamaño con la mayor parte <strong>de</strong> sus elementos cero.<br />
5.1. Ca<strong>de</strong>nas <strong>de</strong> caracteres<br />
MATLAB trabaja también con ca<strong>de</strong>nas <strong>de</strong> caracteres, con ciertas semejanzas y también diferencias<br />
respecto a C/C++ y Java. A continuación se explica lo más importante <strong>de</strong>l manejo <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong><br />
caracteres en MATLAB. Las funciones para ca<strong>de</strong>nas <strong>de</strong> caracteres están en el sub-directorio<br />
toolbox\matlab\strfun <strong>de</strong>l directorio en que esté instalado MATLAB.<br />
Los caracteres <strong>de</strong> una ca<strong>de</strong>na se almacenan en un vector, con un carácter por elemento. Cada<br />
carácter ocupa dos bytes. Las ca<strong>de</strong>nas <strong>de</strong> caracteres van entre apóstrofos o comillas simples, como<br />
por ejemplo: 'ca<strong>de</strong>na'. Si la ca<strong>de</strong>na <strong>de</strong>be contener comillas, éstas se representan por un doble<br />
carácter comilla, <strong>de</strong> modo que se pue<strong>de</strong>n distinguir fácilmente <strong>de</strong>l principio y final <strong>de</strong> la ca<strong>de</strong>na. Por<br />
ejemplo, para escribir la ca<strong>de</strong>na ni 'i<strong>de</strong>a' se escribiría 'ni''i<strong>de</strong>a'''.<br />
Una matriz <strong>de</strong> caracteres es una matriz cuyos elementos son caracteres, o bien una matriz<br />
cuyas filas son ca<strong>de</strong>nas <strong>de</strong> caracteres. Todas las filas <strong>de</strong> una matriz <strong>de</strong> caracteres <strong>de</strong>ben tener el<br />
mismo número <strong>de</strong> elementos. Si es preciso, las ca<strong>de</strong>nas (filas) más cortas se completan con<br />
blancos.<br />
A continuación se pue<strong>de</strong>n ver algunos ejemplos y practicar con ellos:<br />
>> c='ca<strong>de</strong>na'<br />
c =<br />
ca<strong>de</strong>na<br />
>> size(c) % dimensiones <strong>de</strong>l array<br />
ans =<br />
1 6<br />
>> double(c) % convierte en números ASCII cada carácter<br />
ans =<br />
99 97 100 101 110 97<br />
>> char(abs(c)) % convierte números ASCII en caracteres<br />
ans =<br />
ca<strong>de</strong>na<br />
>> cc=char('más','ma<strong>de</strong>ra') % convierte dos ca<strong>de</strong>nas en una matriz<br />
cc =<br />
más<br />
ma<strong>de</strong>ra<br />
>> size(cc) % se han añadido tres espacios a 'más'<br />
ans =<br />
2 6<br />
Las funciones más importantes para manejo <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong> caracteres son las siguientes: