Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Los arrays multidimensionales

Una matriz multidimensional en MATLAB® es una matriz con más de dos dimensiones. En una matriz, las dos dimensiones se representan mediante filas y columnas.

Cada elemento se define mediante dos subíndices, el índice de fila y el índice de columna. Las matrices multidimensionales son una extensión de matrices 2-D y utilizan subíndices adicionales para la indexación. Una matriz 3-D, por ejemplo, utiliza tres subsublos. Los dos primeros son igual que una matriz, pero la tercera dimensión representa o de elementos.pagessheets

Creación de matrices multidimensionales

Puede crear una matriz multidimensional mediante la creación de una matriz 2-D primero y, a continuación, extenderla. Por ejemplo, primero defina una matriz 3-por-3 como la primera página en una matriz 3-D.

A = [1 2 3; 4 5 6; 7 8 9]
A = 3×3

     1     2     3
     4     5     6
     7     8     9

Ahora agregue una segunda página. Para ello, asigne otra matriz de 3 por 3 al valor de índice 2 de la tercera dimensión. La sintaxis utiliza dos puntos en la primera y la segunda dimensión para incluir todas las filas y todas las columnas del lado derecho de la asignación.A(:,:,2)

A(:,:,2) = [10 11 12; 13 14 15; 16 17 18]
A =  A(:,:,1) =       1     2     3      4     5     6      7     8     9   A(:,:,2) =      10    11    12     13    14    15     16    17    18  

La función puede ser una herramienta útil para construir matrices multidimensionales.cat Por ejemplo, cree una nueva matriz 3-D concatenando con una tercera página.BA El primer argumento indica qué dimensión se concatenará a lo largo.

B = cat(3,A,[3 2 1; 0 9 8; 5 3 7])
B =  B(:,:,1) =       1     2     3      4     5     6      7     8     9   B(:,:,2) =      10    11    12     13    14    15     16    17    18   B(:,:,3) =       3     2     1      0     9     8      5     3     7  

Otra forma de expandir rápidamente una matriz multidimensional es asignando un solo elemento a una página completa. Por ejemplo, agregue una cuarta página a la que contenga todos los ceros.B

B(:,:,4) = 0
B =  B(:,:,1) =       1     2     3      4     5     6      7     8     9   B(:,:,2) =      10    11    12     13    14    15     16    17    18   B(:,:,3) =       3     2     1      0     9     8      5     3     7   B(:,:,4) =       0     0     0      0     0     0      0     0     0  

Acceder a Elements

Para tener acceso a los elementos de una matriz multidimensional, utilice subsubnúmeros enteros tal como lo haría para vectores y matrices. Por ejemplo, busque el elemento 1, 2, 2 de, que está en la primera fila, segunda columna y segunda página de.AA

A
A =  A(:,:,1) =       1     2     3      4     5     6      7     8     9   A(:,:,2) =      10    11    12     13    14    15     16    17    18  
elA = A(1,2,2)
elA = 11 

Utilice el vector de índice en la segunda dimensión para tener acceso solo a la primera y última columna de cada página de.[1 3]A

C = A(:,[1 3],:)
C =  C(:,:,1) =       1     3      4     6      7     9   C(:,:,2) =      10    12     13    15     16    18  

Para buscar la segunda y la tercera fila de cada página, utilice el operador de dos puntos para crear el vector de índice.

D = A(2:3,:,:)
D =  D(:,:,1) =       4     5     6      7     8     9   D(:,:,2) =      13    14    15     16    17    18  

Manipular matrices

Los elementos de las matrices multidimensionales se pueden mover de muchas maneras, de forma similar a los vectores y matrices. , y son funciones útiles para reorganizar elementos.reshapepermutesqueeze Considere una matriz 3-D con dos páginas.

La remodelación de una matriz multidimensional puede ser útil para realizar determinadas operaciones o visualizar los datos. Utilice la función para reorganizar los elementos de la matriz 3-D en una matriz de 6 por 5.reshape

A = [1 2 3 4 5; 9 0 6 3 7; 8 1 5 0 2]; A(:,:,2) = [9 7 8 5 2; 3 5 8 5 1; 6 9 4 3 3]; B = reshape(A,[6 5])
B = 6×5

     1     3     5     7     5
     9     6     7     5     5
     8     5     2     9     3
     2     4     9     8     2
     0     3     3     8     1
     1     0     6     4     3

Opera columnwise, la creación de la nueva matriz mediante la toma de elementos consecutivos en cada columna de, comenzando con la primera página y luego pasar a la segunda página.reshapeA

Las permutaciones se utilizan para reorganizar el orden de las dimensiones de una matriz. Considere una matriz 3-D.M

M(:,:,1) = [1 2 3; 4 5 6; 7 8 9]; M(:,:,2) = [0 5 4; 2 7 6; 9 3 1]
M =  M(:,:,1) =       1     2     3      4     5     6      7     8     9   M(:,:,2) =       0     5     4      2     7     6      9     3     1  

Utilice la función para intercambiar subtotales de fila y columna en cada página especificando el orden de las dimensiones en el segundo argumento.permute Las filas originales de ahora son columnas y las columnas ahora son filas.M

P1 = permute(M,[2 1 3])
P1 =  P1(:,:,1) =       1     4     7      2     5     8      3     6     9   P1(:,:,2) =       0     2     9      5     7     3      4     6     1  

Del mismo modo, los subgrupos de filas y páginas de intercambio.M

P2 = permute(M,[3 2 1])
P2 =  P2(:,:,1) =       1     2     3      0     5     4   P2(:,:,2) =       4     5     6      2     7     6   P2(:,:,3) =       7     8     9      9     3     1  

Cuando se trabaja con matrices multidimensionales, puede encontrarse con una dimensión innecesaria de longitud 1. La función realiza otro tipo de manipulación que elimina las dimensiones de la longitud 1.squeeze Por ejemplo, utilice la función para crear una matriz 2-por-3-por-1-por-4 cuyos elementos sean cada 5, y cuya tercera dimensión tenga la longitud 1.repmat

A = repmat(5,[2 3 1 4])
A =  A(:,:,1,1) =       5     5     5      5     5     5   A(:,:,1,2) =       5     5     5      5     5     5   A(:,:,1,3) =       5     5     5      5     5     5   A(:,:,1,4) =       5     5     5      5     5     5  
szA = size(A)
szA = 1×4

     2     3     1     4

numdimsA = ndims(A)
numdimsA = 4 

Utilice la función para eliminar la tercera dimensión, lo que da como resultado una matriz 3-D.squeeze

B = squeeze(A)
B =  B(:,:,1) =       5     5     5      5     5     5   B(:,:,2) =       5     5     5      5     5     5   B(:,:,3) =       5     5     5      5     5     5   B(:,:,4) =       5     5     5      5     5     5  
szB = size(B)
szB = 1×3

     2     3     4

numdimsB = ndims(B)
numdimsB = 3 

Temas relacionados