MATLAB - Operaciones aritméticas

MATLAB permite dos tipos diferentes de operaciones aritméticas:

  • Operaciones aritméticas matriciales
  • Operaciones aritméticas de matriz

Las operaciones aritméticas matriciales son las mismas que se definen en álgebra lineal. Las operaciones de matriz se ejecutan elemento por elemento, tanto en una matriz unidimensional como multidimensional.

Los operadores de matrices y los operadores de matrices se diferencian por el símbolo de punto (.). Sin embargo, como la operación de suma y resta es la misma para matrices y arreglos, el operador es el mismo para ambos casos.

La siguiente tabla ofrece una breve descripción de los operadores:

No Señor. Operador y descripción
1

+

Adición o plus unario. A + B suma los valores almacenados en las variables A y B. A y B deben tener el mismo tamaño, a menos que uno sea un escalar. Se puede agregar un escalar a una matriz de cualquier tamaño.

2

-

Resta o menos unario. AB resta el valor de B de A. A y B deben tener el mismo tamaño, a menos que uno sea un escalar. Un escalar se puede restar de una matriz de cualquier tamaño.

3

*

Multiplicación de matrices. C = A * B es el producto algebraico lineal de las matrices A y B. Más precisamente,

Para A y B no escalares, el número de columnas de A debe ser igual al número de filas de B. Un escalar puede multiplicar una matriz de cualquier tamaño.

4

.*

Multiplicación de matrices. A. * B es el producto elemento por elemento de las matrices A y B. A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar.

5

/

División derecha de barra o matriz. B / A es aproximadamente lo mismo que B * inv (A). Más precisamente, B / A = (A '\ B') '.

6

./

Matriz de división a la derecha. A./B es la matriz con elementos A (i, j) / B (i, j). A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar.

7

\

Barra invertida o división de matriz a la izquierda. Si A es una matriz cuadrada, A \ B es aproximadamente lo mismo que inv (A) * B, excepto que se calcula de una manera diferente. Si A es un n-por-n matriz y B es un vector columna con n componentes, o una matriz con varias de estas columnas, entonces X = A \ B es la solución a la ecuación AX = B . Se muestra un mensaje de advertencia si A tiene una escala incorrecta o es casi singular.

8

.\

Array división izquierda. A. \ B es la matriz con elementos B (i, j) / A (i, j). A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar.

9

^

Poder de la matriz. X ^ p es X elevado a p, si p es un escalar. Si p es un número entero, la potencia se calcula elevando al cuadrado repetidamente. Si el número entero es negativo, X se invierte primero. Para otros valores de p, el cálculo involucra valores propios y vectores propios, de modo que si [V, D] = eig (X), entonces X ^ p = V * D. ^ p / V.

10

.^

Poder de matriz. A. ^ B es la matriz con elementos A (i, j) a la potencia B (i, j). A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar.

11

'

Transposición de matriz. A 'es la transpuesta algebraica lineal de A. Para matrices complejas, esta es la transpuesta conjugada compleja.

12

.'

Transposición de matriz. UN.' es la transposición de la matriz de A. Para matrices complejas, esto no implica conjugación.

Ejemplo

Los siguientes ejemplos muestran el uso de operadores aritméticos en datos escalares. Cree un archivo de script con el siguiente código:

a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
z = x ^ y

Cuando ejecuta el archivo, produce el siguiente resultado:

c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

Funciones para operaciones aritméticas

Además de los operadores aritméticos mencionados anteriormente, MATLAB proporciona los siguientes comandos / funciones que se utilizan para fines similares:

No Señor. Función descriptiva
1

uplus(a)

Más unario; incrementos en la cantidad a

2

plus (a,b)

Más; devuelve a + b

3

uminus(a)

Menos unario; decrementos en la cantidad a

4

minus(a, b)

Menos; devuelve a - b

5

times(a, b)

Array multiplicar; devuelve a. * b

6

mtimes(a, b)

Multiplicación de matrices; devuelve a * b

7

rdivide(a, b)

División de matriz derecha; devuelve a ./ b

8

ldivide(a, b)

División de matriz izquierda; devuelve a. \ b

9

mrdivide(A, B)

Resolver sistemas de ecuaciones lineales xA = B para x

10

mldivide(A, B)

Resolver sistemas de ecuaciones lineales Ax = B para x

11

power(a, b)

Poder de matriz; devuelve a. ^ b

12

mpower(a, b)

Poder de la matriz; devuelve a ^ b

13

cumprod(A)

Producto acumulativo; devuelve una matriz del mismo tamaño que la matriz A que contiene el producto acumulativo.

  • Si A es un vector, entonces cumprod (A) devuelve un vector que contiene el producto acumulativo de los elementos de A.

  • Si A es una matriz, entonces cumprod (A) devuelve una matriz que contiene los productos acumulados para cada columna de A.

  • Si A es una matriz multidimensional, entonces cumprod (A) actúa a lo largo de la primera dimensión no singleton.

14

cumprod(A, dim)

Devuelve el producto acumulativo a lo largo de la dimensión dim .

15

cumsum(A)

Suma acumulada; devuelve una matriz A que contiene la suma acumulativa.

  • Si A es un vector, entonces cumsum (A) devuelve un vector que contiene la suma acumulativa de los elementos de A.

  • Si A es una matriz, entonces cumsum (A) devuelve una matriz que contiene las sumas acumuladas para cada columna de A.

  • Si A es una matriz multidimensional, entonces cumsum (A) actúa a lo largo de la primera dimensión que no es de un solo tono.

dieciséis

cumsum(A, dim)

Devuelve la suma acumulativa de los elementos a lo largo de la dimensión dim .

17

diff(X)

Diferencias y derivadas aproximadas; calcula las diferencias entre los elementos adyacentes de X.

  • Si X es un vector, entonces diff (X) devuelve un vector, un elemento más corto que X, de diferencias entre elementos adyacentes: [X (2) -X (1) X (3) -X (2) ... X (n) -X (n-1)]

  • Si X es una matriz, diff (X) devuelve una matriz de diferencias de filas: [X (2: m,:) - X (1: m-1, :)]

18

diff(X,n)

Aplica diff de forma recursiva n veces, lo que da como resultado la enésima diferencia.

19

diff(X,n,dim)

Es la enésima función de diferencia calculada a lo largo de la dimensión especificada por escalar dim. Si el orden n es igual o superior a la longitud de la dimensión dim, diff devuelve una matriz vacía.

20

prod(A)

Producto de elementos de matriz; devuelve el producto de los elementos de la matriz de A.

  • Si A es un vector, prod (A) devuelve el producto de los elementos.

  • Si A es una matriz no vacía, entonces prod (A) trata las columnas de A como vectores y devuelve un vector de fila de los productos de cada columna.

  • Si A es una matriz vacía de 0 por 0, prod (A) devuelve 1.

  • Si A es una matriz multidimensional, prod (A) actúa a lo largo de la primera dimensión no singleton y devuelve una matriz de productos. El tamaño de esta dimensión se reduce a 1 mientras que los tamaños de todas las demás dimensiones siguen siendo los mismos.

La función prod calcula y devuelve B como único si la entrada, A, es única. Para todos los demás tipos de datos numéricos y lógicos, prod calcula y devuelve B como doble.

21

prod(A,dim)

Devuelve los productos a lo largo de la dimensión dim. Por ejemplo, si A es una matriz, prod (A, 2) es un vector de columna que contiene los productos de cada fila.

22

prod(___,datatype)

se multiplica y devuelve una matriz en la clase especificada por el tipo de datos.

23

sum(A)

  • Suma de elementos de la matriz; devuelve sumas a lo largo de diferentes dimensiones de una matriz. Si A es punto flotante, es decir, doble o simple, B se acumula de forma nativa, es decir, está en la misma clase que A, y B tiene la misma clase que A. Si A no es punto flotante, B se acumula en doble y B tiene clase doble.

  • Si A es un vector, sum (A) devuelve la suma de los elementos.

  • Si A es una matriz, sum (A) trata las columnas de A como vectores, devolviendo un vector de fila de las sumas de cada columna.

  • Si A es una matriz multidimensional, sum (A) trata los valores a lo largo de la primera dimensión no singleton como vectores, devolviendo una matriz de vectores de fila.

24

sum(A,dim)

Sumas a lo largo de la dimensión de A especificada por escalar dim .

25

sum(..., 'double')

sum(..., dim,'double')

Realice sumas en doble precisión y devuelva una respuesta de tipo doble, incluso si A tiene un tipo de datos simple o un tipo de datos entero. Este es el valor predeterminado para los tipos de datos enteros.

26

sum(..., 'native')

sum(..., dim,'native')

Realice adiciones en el tipo de datos nativo de A y devuelva una respuesta del mismo tipo de datos. Este es el valor predeterminado para simple y doble.

27

ceil(A)

Redondea hacia el infinito positivo; redondea los elementos de A a los números enteros más cercanos mayores o iguales que A.

28

fix(A)

Redondea hacia cero

29

floor(A)

Redondea hacia el infinito negativo; redondea los elementos de A a los números enteros más cercanos menores o iguales que A.

30

idivide(a, b)

idivide(a, b,'fix')

División de enteros con opción de redondeo; es lo mismo que a./b excepto que los cocientes fraccionarios se redondean hacia cero a los números enteros más cercanos.

31

idivide(a, b, 'round')

Los cocientes fraccionarios se redondean a los números enteros más cercanos.

32

idivide(A, B, 'floor')

Los cocientes fraccionarios se redondean hacia el infinito negativo a los números enteros más cercanos.

33

idivide(A, B, 'ceil')

Los cocientes fraccionarios se redondean hacia el infinito a los números enteros más cercanos.

34

mod (X,Y)

Módulo tras división; devuelve X - n. * Y donde n = piso (X./Y). Si Y no es un número entero y el cociente X./Y está dentro del error de redondeo de un número entero, entonces n es ese número entero. Las entradas X e Y deben ser matrices reales del mismo tamaño o escalares reales (siempre que Y ~ = 0).

Tenga en cuenta:

  • mod (X, 0) es X
  • mod (X, X) es 0
  • mod (X, Y) para X ~ = Y e Y ~ = 0 tiene el mismo signo que Y
35

rem (X,Y)

Resto después de la división; devuelve X - n. * Y donde n = fix (X./Y). Si Y no es un número entero y el cociente X./Y está dentro del error de redondeo de un número entero, entonces n es ese número entero. Las entradas X e Y deben ser matrices reales del mismo tamaño o escalares reales (siempre que Y ~ = 0).

Tenga en cuenta que -

  • rem (X, 0) es NaN
  • rem (X, X) para X ~ = 0 es 0
  • rem (X, Y) para X ~ = Y e Y ~ = 0 tiene el mismo signo que X.
36

round(X)

Redondea al entero más cercano; redondea los elementos de X a los números enteros más cercanos. Los elementos positivos con una parte fraccionaria de 0,5 se redondean al número entero positivo más cercano. Los elementos negativos con una fracción de -0,5 se redondean al número entero negativo más cercano.