Вы находитесь на странице: 1из 25

En los captulos anteriores se ha visto la en

MATLAB el trabajo con vectores y matrices.


Hoy veremos que MATLAB puede tambin
trabajar con otros tipos de datos:
En esta oportunidad le voy a hablar sobre:

Hipermatrices, o matrices de ms de dos
dimensiones.
HIPERMATRICES

Una posible aplicacin es
almacenar con un nico
nombre distintas matrices
del mismo tamao (resulta
una hipermatriz de 3
dimensiones).
Los elementos de una
hipermatriz pueden ser
nmeros, caracteres,
estructuras,
y vectores o matrices de
celdas.
El tercer subndice representa la
tercera dimensin: la
profundidad de la hipermatriz.




Definicin de
Hipermatrices
Las funciones para trabajar con estas
hipermatrices estn en el sub-directorio
toolbox\matlab\datatypes.
Las funciones que operan con matrices de
ms de dos dimensiones son anlogas a las
funciones vistas previamente, aunque con
algunas diferencias.
Ejemplo:
Las siguientes sentencias generan, en dos pasos, una matriz
de 2 3 2:
(: , : , ) = [ ; ] %
=
1 2 3
4 5 6
: , : , = ; %

(: , : , 1) =
1 2 3
4 5 6
(: , : , 2) =
2 3 4
5 6 7
FUNCIONES QUE TRABAJAN CON
HIPERMATRICES
Algunas funciones de MATLAB para generar
matrices admiten ms de dos subndices y
pueden ser utilizadas para generar
hipermatrices.

Entre ellas estn:

rand(), randn(), zeros() y ones().
Por ejemplo:
= (, , )

(: , : , 1) =
0.4326 0.1253 1.1465
1.6656 0.2877 1.1909

(: , : , 2) =
1.1892 0.3273 0.1867
0.0376 0.1746 0.7258
Por ejemplo:
La funcin cat() permite
concatenar matrices segn
las distintas dimensiones:
= , ; =
(, );
(, , )
=
0 0 0
0 0 0
1 1 1
1 1 1
(, , )
=
0 0 0 1 1 1
0 0 0 1 1 1




(, , )
(: , : , 1) =
0 0 0
0 0 0
(: , : , 2) =
1 1 1
1 1 1

Las siguientes funciones de MATLAB
se pueden emplear tambin con
hipermatrices:
size() devuelve tres o ms valores (el n de
elementos en cada dimensin)
ndims() devuelve el nmero de dimensiones
squeeze() elimina las dimensiones que son
igual a uno
reshape() distribuye el mismo nmero de
elementos en una matriz con distinta forma o
con distintas dimensiones
permute(A,v) permuta las dimensiones de A
segn los ndices del vector v
ipermute(A,v) realiza la permutacin inversa


Respecto al resto de las funciones de MATLAB,
se pueden establecer las siguientes reglas para
su aplicacin a hipermatrices:

1. Todas las funciones de MATLAB que operan sobre
escalares (sin(), cos(), etc.) se aplican sobre
hipermatrices elemento a elemento (igual que sobre
vectores y matrices). Las operaciones con escalares
tambin se aplican de la misma manera.
2. Las funciones que operan sobre vectores (sum(), max(),
etc.) se aplican a matrices e hipermatrices segn la
primera dimensin, resultando un array de una dimensin
inferior.
3. Las funciones matriciales propias del lgebra Lineal
(det(), inv(), etc.) no se pueden aplicar a hipermatrices.
Para poderlas aplicar hay que extraer primero las
matrices correspondientes (por ejemplo, con el operador
dos puntos (:))
Ejemplo:

Si queremos crear un cubo de nmeros de
lado 5 donde la tapa y el fondo sean
matrices unidad y el resto sean ceros
podemos hacer lo siguiente:

(3, (5), ((5), [1,1,3]), (5))
Manejo Bsicos de imgenes
con Hipermatrices

Leyendo imgenes de bin:
>>f=imread(wow.jpeg)
Obteniendo informacin de
f:
Para determinar el tamao e la imagen:
>>size(f)
ans =
177 284 3
Si lo queremos almacenar en una variable:
>>[M,N]=size(f)
Si lo que queremos es obtener informacin ms
detallada de la imagen:
>> whos f
Name Size Bytes Class Attributes

f 177x284x3 150804 uint8
Mostrando Imgenes
imshow(f)
Donde f es la imagen.

>> max(f(:)) %todos los elementos
ans =
255
imshow(gris)


Ejemplo:

>> c=imread('autumn.tif');
>> whos c
Name Size Bytes Class
Attributes
c 206x345x3 213210 uint8
El gran total es 213.210 elementos con
213,210 bytes
>> imshow(c)

>> max(c(:)) %todos los elementos
ans =
248
>> gris=(c(:,:,1)+c(:,:,2)+c(:,:,3))/3;
>>imshow(gris)

Referencias:
http://www.diquima.upm.es/recursos/ma
nuales/matlab61pro.pdf
http://iimyo.forja.rediris.es/matlab/cursol
atex006.html
http://www.iit.upcomillas.es/palacios/mat
lab/curso_matlab.pdf
http://www.dspace.espol.edu.ec/bitstrea
m/123456789/10740/14/Manejo%20basi
co%20de%20imagenes_matlab.pdf

Вам также может понравиться