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.

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

>> vb{1}=[1 2 3]<br />

vb =<br />

[1x3 double]<br />

>> vb{2}='mi nombre'<br />

vb =<br />

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

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

vb =<br />

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

y también es posible crear el vector <strong>de</strong> celdas en una sola operación en la forma,<br />

vcc = {[1 2 3], 'mi nombre', rand(3,3)}<br />

vcc =<br />

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

5.4.2. FUNCIONES PARA TRABAJAR CON VECTORES Y MATRICES DE CELDAS<br />

MATLAB dispone <strong>de</strong> las siguientes funciones para trabajar con cell arrays:<br />

cell(m,n) crea un cell array vacío <strong>de</strong> m filas y n columnas<br />

celldisp(ca) muestra el contenido <strong>de</strong> todas las celdas <strong>de</strong> ca<br />

cellplot(ca) muestra una representación gráfica <strong>de</strong> las distintas celdas<br />

iscell(ca) indica si ca es un vector <strong>de</strong> celdas<br />

num2cell() convierte un array numérico en un cell array<br />

cell2struct() convierte un cell array en una estructura (ver Sección 5.4.3)<br />

struct2cell() convierte una estructura en un cell array (ver Sección 5.4.3)<br />

5.4.3. CONVERSIÓN ENTRE ESTRUCTURAS Y VECTORES DE CELDAS<br />

El siguiente ejemplo convierte el cell array vcc creado previamente en una estructura ST cuyos<br />

campos se pasan como argumentos a la función cell2struct(). El tercer argumento (un 2) indica que<br />

es la segunda dimensión <strong>de</strong>l cell array (las columnas) la que va a dar origen a los campos <strong>de</strong> la<br />

estructura. Con posterioridad la estructura ST se convierte en un nuevo cell array llamado vbb,<br />

>> ST=cell2struct(vb,{'vector','ca<strong>de</strong>na','matriz'},2)<br />

ST =<br />

vector: [1 2 3]<br />

ca<strong>de</strong>na: 'mi nombre'<br />

matriz: [3x3 double]<br />

>> vbb = struct2cell(ST)' % hay que transponer para obtener una fila<br />

vbb =<br />

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

La gran ventaja <strong>de</strong> las estructuras y los arrays <strong>de</strong> celdas es que proporcionan una gran<br />

flexibilidad para el almacenamiento <strong>de</strong> los más diversos tipos <strong>de</strong> información. El inconveniente es<br />

que se pier<strong>de</strong> parte <strong>de</strong> la eficiencia que MATLAB tiene trabajando con vectores y matrices.<br />

5.5. Matrices dispersas (sparse)<br />

Las matrices dispersas o sparse son matrices <strong>de</strong> un gran tamaño con la mayor parte <strong>de</strong> sus<br />

elementos cero. Operar sobre este tipo <strong>de</strong> matrices con los métodos convencionales lleva a obtener<br />

tiempos <strong>de</strong> cálculo prohibitivos. Por esta razón se han <strong>de</strong>sarrollado técnicas especiales para este tipo<br />

<strong>de</strong> matrices. En ingeniería es muy frecuente encontrar aplicaciones en las que aparecen matrices<br />

sparse. MATLAB dispone <strong>de</strong> numerosas funciones para trabajar con estas matrices.

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

Saved successfully!

Ooh no, something went wrong!