Agregar vector a matriz 3D en MATLAB

Ammar Ali 15 febrero 2024
Agregar vector a matriz 3D en MATLAB

Este tutorial analizará la adición de un vector a una matriz 3D utilizando la función cat() en MATLAB.

Agregar vector a matriz 3D en MATLAB

Una matriz o arreglo 3D es diferente de una matriz o arreglo 2D. En una matriz o arreglo 2D, tenemos dos dimensiones en las que la primera dimensión se llama fila y la segunda dimensión se llama columna.

En una matriz o matriz 3D, tenemos 3 dimensiones en las que las dos primeras dimensiones son las mismas que la matriz o matriz 2D, y la tercera dimensión se llama páginas u hojas. A continuación se muestra una matriz o arreglo 3D simple.

matriz 3d

En una matriz o arreglo 2D, cada elemento se coloca en una ubicación específica o en un número de fila y columna, y podemos obtener y reemplazar un elemento usando su ubicación. En una matriz o arreglo 3D, cada elemento se coloca en una ubicación, fila, columna y número de página específicos, y podemos obtener y reemplazar un elemento usando su ubicación.

Por ejemplo, el primer elemento de una matriz o matriz 3D se colocará en la ubicación (1,1,1), que también se muestra en el diagrama anterior. Si queremos agregar un vector al final de una matriz 3D, el tamaño del vector debe ser el mismo que el tamaño de cada página o tercera dimensión presente en la matriz 3D.

Por ejemplo, creemos una matriz o matriz 3D con 1 fila, 2 columnas y 2 páginas. Vea el código a continuación.

clc
clear

MyMatrix   = ones(1,2,2)

Producción :

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1

MATLAB muestra un arreglo o matriz 3D con respecto a la tercera dimensión. En el ejemplo anterior, tenemos una matriz 3D con 2 páginas, y cada página tendrá una matriz 2D de 1 fila y 2 columnas que se muestran en la salida.

Si queremos obtener un elemento de la matriz 3D, debemos dar su ubicación, como la fila, la columna y el número de página. Si queremos agregar o agregar otro vector al final de la matriz o matriz 3D anterior, podemos usar la función cat(), que concatena dos matrices de acuerdo con la dimensión dada.

La función cat() tiene tres argumentos de entrada en los que el primer argumento es el número de dimensión, el segundo argumento es la matriz 3D y el tercer argumento es el vector o matriz que queremos añadir a la matriz 3D. En nuestro caso, queremos agregar el vector al final de la matriz 3D, lo que significa que queremos agregar el vector después de la última página.

La función cat() creará otra página en la matriz 3D para almacenar el vector dado.

Por ejemplo, vamos a crear y agregar un vector al final de la matriz o matriz 3D anterior usando la función cat(). Vea el código a continuación.

MyVector = [5 6];
MyMatrix   = ones(1,2,2)
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, MyVector)

Producción :

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


MyMatrix(:,:,3) =

     5     6

Como podemos ver en el resultado anterior, la matriz 3D tiene 3 páginas después de la concatenación y la última página contiene el vector de entrada. Para una concatenación exitosa, el tamaño de la dimensión que pasamos dentro de la función cat() y el tamaño del vector deben ser iguales.

En el ejemplo anterior, solo tenemos una sola fila en cada página, por lo que no hemos encontrado ningún error. Si tenemos una matriz 3D con más de una fila, el tamaño de la tercera dimensión o página será diferente al tamaño del vector dado.

Para resolver este problema, podemos crear un vector de ceros usando la función zeros(), que tendrá el mismo tamaño que la tercera dimensión o página, y luego podemos reemplazar el primer arreglo de la matriz de ceros con el vector dado . Ahora, el vector dado se convertirá en una matriz con ceros adicionales, que podemos agregar o agregar fácilmente al final de la matriz 3D.

Por ejemplo, creemos una matriz 3D con 2 filas, 2 columnas y 2 páginas y luego agreguemos el vector dado usando el método mencionado anteriormente. Vea el código a continuación.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
NewVector = zeros(2,2)
NewVector(1,:) = MyVector
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, NewVector)

Producción :

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


NewVector =

     0     0
     0     0


NewVector =

     5     6
     0     0


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


MyMatrix(:,:,3) =

     5     6
     0     0

Podemos ver en el resultado anterior que el vector se agrega a la matriz 3D, pero también tuvimos que agregar ceros para que el tamaño sea igual. Si queremos agregar un vector columna, debemos seguir el mismo método discutido anteriormente.

Si la matriz 3D tiene solo una columna en cada página y su tamaño es igual al tamaño del vector de la columna de entrada, podemos agregarlos fácilmente usando la función cat(). Si la matriz 3D tiene más de una columna o el tamaño es diferente, debemos igualar el tamaño agregando ceros a lo largo del vector de columna dado, y luego podemos agregarlo a la matriz 3D usando el mismo método que usamos en el caso de agregar vector de fila.

También podemos reemplazar las filas, columnas o una página completa de una matriz 3D. Por ejemplo, creemos una matriz 3D usando la función unos() y reemplacemos la primera fila de la primera página usando el operador de agregar.

Vea el código a continuación.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
s = "After replacing row"
MyMatrix(1,:,1) = MyVector

Producción :

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


s =

    "After replacing row"


MyMatrix(:,:,1) =

     5     6
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1

En el código anterior, hemos creado una matriz 3D de unos con 2 filas, 2 columnas y 2 páginas. Hemos reemplazado la primera fila de la primera página con otro vector.

Como vemos en la salida anterior, la salida antes y después del texto que se muestra en la salida es diferente porque reemplazamos la primera fila de la primera página. El tamaño de la fila que se está reemplazando y la nueva fila deben ser iguales.

También podemos reemplazar una página completa o cualquier dimensión con otra matriz o arreglo, pero el tamaño debe ser el mismo.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Matrix