Arreglos: Hipermatrices

Anuncio
Herramientas computacionales para la
matemática
MATLAB: Arreglos
Verónica Borja Macías
Marzo 2013
1
Matlab
Arreglos: hipermatrices
 Hasta el momento hemos estudiado la
generación de vectores y matrices, es decir,
hemos manejado un máximo de dos
dimensiones.
 Las hipermatrices son matrices que manejan
tres o más dimensiones.
 Para entender esto pondremos como ejemplo
la hipermatriz T, de 3 dimensiones.
2
Matlab
Arreglos: hipermatrices
3
Matlab
Arreglos: hipermatrices
 La representación anterior nos
sugiere que esta hipermatriz se
trata del conjunto de matrices
de iguales dimensiones una
sobre la otra.
 Los elementos de una
hipermatriz pueden ser
números, caracteres, estructuras
y vectores o matrices de celdas.
4
Matlab
Arreglos: hipermatrices
 La representación de más de 3 dimensiones se vuelve
más compleja y difícil de representar gráficamente en 2
dimensiones.
 Nuestros sentidos no están preparados para manejar
más de 3 dimensiones; sin embargo, en diversos
campos como la ingeniería siempre se tienen
problemas que requieren del manejo de ndimensiones.
 MATLAB, con las hipermatrices nos puede ayudar
haciendo cálculos sobre estructuras de mas de dos
dimensiones.
5
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> T(:,:,1) = [1 2 3; 4 5 6]; % definimos la primera capa
>> T(:,:,2) = [7 8 9; 10 11 12] % definimos la segunda capa
>> T(:,:,3)=[0 0 0; 0 0 6] % definimos la tercera capa
T(:,:,1) =
1 2 3
4 5 6
T(:,:,2) =
7 8 9
10 11 12
T(:,:,3) =
0 0 0
0 0 6
6
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A(:,:,1)=[linspace(1,3,3);4 5 6] ;
>> A(:,:,2)=zeros(2,3);
>> A(:,:,3)=ones(2,3);
>> A
A(:,:,1) =
1 2 3
4 5 6
A(:,:,2) =
0 0 0
0 0 0
A(:,:,3) =
1 1 1
1 1 1
7
Matlab
Arreglos: creación de hipermatrices
 Algunas funciones para generar matrices admiten más
de dos subíndices y pueden ser utilizadas para generar
hipermatrices como rand, randn, zeros y ones.
Ejemplo
>> A=rand(2,3,3)
A(:,:,1) =
0.4898 0.6463
0.4456 0.7094
A(:,:,2) =
0.6797 0.1626
0.6551 0.1190
A(:,:,3) =
0.3404 0.2238
0.5853 0.7513
0.7547
0.2760
0.4984
0.9597
0.2551
0.5060
8
Matlab
Arreglos: creación de hipermatrices
 También se pueden emplear con hipermatrices las
funciones size y reshape entre otras.
Ejercicio
>> A=rand(2,3,3);
>> reshape(A,3,3,2)
ans(:,:,1) =
0.4898 0.7094
0.4456 0.7547
0.6463 0.2760
ans(:,:,2) =
0.1190 0.3404
0.4984 0.5853
0.9597 0.2238
0.6797
0.6551
0.1626
0.7513
0.2551
0.5060
 La función cat permite concatenar matrices según las
distintas “dimensiones”.
9
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A = zeros (2,3); B = ones (2,3); % definimos dos matrices de las
mismas dimensiones
>> cat (1,A,B) % las concatena una debajo de la otra
ans =
0 0 0
0 0 0
1 1 1
1 1 1
>> cat (2,A,B) % las concatena una al lado de la otra
ans =
0 0 0 1 1 1
0 0 0 1 1 1
10
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A = zeros (2,3); B = ones (2,3); % definimos dos matrices de las
mismas dimensiones
>> cat (3,A,B) % las concatena como distintas capas de una
hipermatriz
ans(:,:,1) =
0 0 0
0 0 0
ans(:,:,2) =
1 1 1
1 1 1
11
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A = zeros (2,3); B = ones (2,3); % definimos dos matrices de las
mismas dimensiones
>> cat (3,A,B) % las concatena como distintas capas de una
hipermatriz
ans(:,:,1) =
0 0 0
0 0 0
ans(:,:,2) =
1 1 1
1 1 1
12
Matlab
Arreglos: funciones aplicadas a hipermatrices
 Las funciones que operan sobre escalares, como sin,
cos, etc., se aplican sobre hipermatrices elemento a
elemento .
 Las funciones que operan sobre vectores, como sum,
max, etc., se aplican a matrices e hipermatrices según
la primera dimensión, resultando un array de una
dimensión inferior.
 Las funciones matriciales propias del álgebra lineal,
como det, inv, etc., no se pueden aplicar a
hipermatrices, para aplicarlas habría que extraer las
matrices correspondientes.
13
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A=rand(2,3,2)
A(:,:,1) =
0.6991 0.9593
0.8909 0.5472
A(:,:,2) =
0.2575 0.2543
0.8407 0.8143
>> sin(A)
ans(:,:,1) =
0.6435 0.8188
0.7776 0.5203
ans(:,:,2) =
0.2547 0.2516
0.7451 0.7272
0.1386
0.1493
0.2435
0.9293
0.1382
0.1487
0.2411
0.8012
14
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A=rand(2,3,2)
A(:,:,1) =
0.6991 0.9593
0.8909 0.5472
A(:,:,2) =
0.2575 0.2543
0.8407 0.8143
>> sum(A)
ans(:,:,1) =
1.5900 1.5065
ans(:,:,2) =
1.0982 1.0686
0.1386
0.1493
0.2435
0.9293
0.2879
1.1728
15
Matlab
Arreglos: creación de hipermatrices
Ejemplo
>> A=rand(2,2,2)
A(:,:,1) =
0.3500 0.2511
0.1966 0.6160
A(:,:,2) =
0.4733 0.8308
0.3517 0.5853
>> det(A)
??? Undefined function or method 'det' for input arguments of type 'double'
and attributes 'full 3d real'.
>> det(A(:,:,1)), det(A(:,:,2))
ans =
0.1662
ans =
-0.0152
16
Descargar