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

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:

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

Saved successfully!

Ooh no, something went wrong!