Tamaños de arreglos compatibles para operaciones básicas
La mayoría de funciones y operadores binarios (de dos entradas) de MATLAB® admiten arreglos numéricos con tamaños compatibles. Dos entradas tienen tamaños compatibles si, en cualquier dimensión, los tamaños de la dimensión de las entradas son los mismos o uno de ellos es 1. En los casos más sencillos, los tamaños de dos arreglos son compatibles si son exactamente los mismos o si uno es un escalar. MATLAB amplía de manera implícita los arreglos con tamaños compatibles para que tengan el mismo tamaño durante la ejecución de la función u operación elemento por elemento.
Entradas con tamaños compatibles
Entradas en dos dimensiones
Estas son algunas combinaciones de escalares, vectores y matrices con tamaños compatibles:
Dos entradas que tienen exactamente el mismo tamaño.
Una entrada es un escalar.
Una entrada es una matriz y la otra es un vector columna con el mismo número de filas.
Una entrada es un vector columna y la otra es un vector fila.
Arreglos multidimensionales
Todos los arreglos de MATLAB tienen dimensiones finales de tamaño 1. En arreglos multidimensionales, esto significa que una matriz de 3 por 4 es lo mismo que una matriz de tamaño 3 por 4 por 1 por 1 por 1. Algunos ejemplos de arreglos multidimensionales con tamaños compatibles son:
Una entrada es una matriz y la otra es un arreglo 3D con el mismo número de filas y columnas.
Una entrada es una matriz y la otra es un arreglo 3D. Las dimensiones son todas las mismas o una de ellas es 1.
Arreglos vacíos
Las reglas son las mismas para los arreglos vacíos o los arreglos con un tamaño de dimensión de cero. El tamaño de la dimensión que no es igual a 1 determina el tamaño de la salida. Esto significa que las dimensiones con un tamaño de cero deben emparejarse con una dimensión de tamaño 1 o 0 en el otro arreglo y que la salida tiene un tamaño de dimensión de 0.
A: 1-by-0 B: 3-by-1 Result: 3-by-0
Entradas con tamaños incompatibles
Las entradas incompatibles tienen tamaños que no se pueden ampliar de manera implícita para que sean del mismo tamaño. Por ejemplo:
Uno de los tamaños de la dimensión no es igual ni es 1.
A: 3-by-2 B: 4-by-2
Dos vectores fila no escalares con longitudes que no son las mismas.
A: 1-by-3 B: 1-by-4
Ejemplos
Restar un vector de una matriz
Para simplificar las operaciones de matrices y vectores, utilice la ampliación implícita con funciones dimensionales como sum
, mean
, min
y otras.
Por ejemplo, calcule el valor medio de cada columna de una matriz y, después, reste el valor medio de cada elemento.
A = magic(3)
A = 8 1 6 3 5 7 4 9 2
C = mean(A)
C = 5 5 5
A - C
ans = 3 -4 1 -2 0 2 -1 4 -3
Sumar un vector fila o columna
Los vectores fila y columna tienen tamaños compatibles y, cuando realiza una operación con ellos, el resultado es una matriz.
Por ejemplo, sume un vector fila y un vector columna. El resultado es el mismo que bsxfun(@plus,a,b)
.
a = [1 2 3 4]
ans = 1 2 3 4
b = [5; 6; 7]
ans = 5 6 7
a + b
ans = 6 7 8 9 7 8 9 10 8 9 10 11