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