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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capítulo 5: Otros tipos <strong>de</strong> datos <strong>de</strong> MATLAB página 49<br />
>> cat(1,A,B)<br />
ans =<br />
0 0 0<br />
0 0 0<br />
1 1 1<br />
1 1 1<br />
>> cat(2,A,B)<br />
ans =<br />
0 0 0 1 1 1<br />
0 0 0 1 1 1<br />
>> cat(3,A,B)<br />
ans(:,:,1) =<br />
0 0 0<br />
0 0 0<br />
ans(:,:,2) =<br />
1 1 1<br />
1 1 1<br />
Las siguientes funciones <strong>de</strong> MATLAB se pue<strong>de</strong>n emplear también con hipermatrices:<br />
size() <strong>de</strong>vuelve tres o más valores (el nº <strong>de</strong> elementos en cada dimensión)<br />
ndims() <strong>de</strong>vuelve el número <strong>de</strong> dimensiones<br />
squeeze() elimina las dimensiones que son igual a uno<br />
reshape() distribuye el mismo número <strong>de</strong> elementos en una matriz con distinta forma<br />
o con distintas dimensiones<br />
permute(A,v) permuta las dimensiones <strong>de</strong> A según los índices <strong>de</strong>l vector v<br />
ipermute(A,v) realiza la permutación inversa<br />
Respecto al resto <strong>de</strong> las funciones <strong>de</strong> MATLAB, se pue<strong>de</strong>n establecer las siguientes reglas<br />
para su aplicación a hipermatrices:<br />
1. Todas las funciones <strong>de</strong> MATLAB que operan sobre escalares (sin(), cos(), etc.) se aplican<br />
sobre hipermatrices elemento a elemento (igual que sobre vectores y matrices). Las<br />
operaciones con escalares también se aplican <strong>de</strong> la misma manera.<br />
2. Las funciones que operan sobre vectores (sum(), max(), etc.) se aplican a matrices e<br />
hipermatrices según la primera dimensión, resultando un array <strong>de</strong> una dimensión inferior.<br />
3. Las funciones matriciales propias <strong>de</strong>l Álgebra Lineal (<strong>de</strong>t(), inv(), etc.) no se pue<strong>de</strong>n<br />
aplicar a hipermatrices. Para po<strong>de</strong>rlas aplicar hay que extraer primero las matrices<br />
correspondientes (por ejemplo, con el operador dos puntos (:)).<br />
5.3. Estructuras<br />
Una estructura (struct) es una agrupación <strong>de</strong> datos <strong>de</strong> tipo diferente bajo un mismo nombre. Estos<br />
datos se llaman miembros (members) o campos (fields). Una estructura es un nuevo tipo <strong>de</strong> dato,<br />
<strong>de</strong>l que luego se pue<strong>de</strong>n crear muchas variables (objetos o instances). Por ejemplo, la estructura<br />
alumno pue<strong>de</strong> contener los campos nombre (una ca<strong>de</strong>na <strong>de</strong> caracteres) y carnet (un número).<br />
5.3.1. CREACIÓN DE ESTRUCTURAS<br />
En MATLAB la estructura alumno se crea creando un objeto <strong>de</strong> dicha estructura. A diferencia <strong>de</strong><br />
otros lenguajes <strong>de</strong> programación, no hace falta <strong>de</strong>finir previamente el mo<strong>de</strong>lo o patrón <strong>de</strong> la<br />
estructura. Una posible forma <strong>de</strong> hacerlo es crear uno a uno los distintos campos, como en el<br />
ejemplo siguiente: