English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operaciones aritméticas de MATLAB

Operadores de Matlab

MATLAB permite dos tipos diferentes de operaciones aritméticas-

  • Operaciones aritméticas de matrices

  • Operaciones aritméticas de arrays

Los operadores aritméticos de matrices son los mismos que los definidos en la álgebra lineal. Las operaciones de arrays se ejecutan elemento por elemento en arrays unidimensionales y multidimensionales.

Los operadores de cálculo de matrices y los operadores de cálculo de arrays se distinguen por el símbolo de punto (.). Sin embargo, debido a que las operaciones de suma y resta de matrices y arrays son iguales, los operadores en ambas situaciones son los mismos.

La siguiente tabla resume la introducción de operadores-

序号Operadores y descripciones
1

+

Adición o unario más. A + B almacenará el valor sumado de las variables A y B. A menos que uno de ellos sea un escalar, A y B deben tener el mismo tamaño. Se puede sumar un escalar a cualquier tamaño de matriz.

2

-

Resta o unario menos. AB restará el valor de B de A. A menos que uno de ellos sea un escalar, A y B deben tener el mismo tamaño. Se puede restar un escalar de cualquier tamaño de matriz.

3

*

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

Para A y B no escalares, el número de columnas de A debe ser igual al número de filas de B. Los escalares pueden multiplicarse con matrices de cualquier tamaño.

4

.*

Multiplicación de array. A. * B es el producto elemental de los arrays A y B. A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar.

5

/

Barra o división derecha de matriz. B / A y B *Es más o menos equivalente a inv(A). Más exactamente, B / A = (A' \ B')'.

6

./

División derecha de array. A./B es el elemento A(i,j)/de la matriz B(i,j). El tamaño de A y B debe ser el mismo, a menos que uno de ellos sea un escalar.

7

\

Barra invertida o división izquierda de matriz. Si A es una matriz cuadrada, entonces A \ B es equivalente a inv(A)* B es más o menos igual, solo que su forma de cálculo es diferente. Si A es una matriz n×n y B es una matriz de columna con n componentes o una matriz con varias columnas de este tipo, entonces X = A \ B es la ecuaciónAX = Bde la solución. Si A se escala incorrectamente o está cerca de singular, se mostrará un mensaje de advertencia.

8

.\

División izquierda de array. A. \ B es el elemento B(i,j)/de la matriz A(i,j). El tamaño de A y B debe ser el mismo, a menos que uno de ellos sea un escalar.

9

^

Potencia de matriz. Si p es un escalar, entonces X ^ p es X elevado a la potencia p. Si p es un entero, se calcula la potencia mediante la repetición de la potencia cuadrática. Si el entero es negativo, se invierte X primero. Para otros valores de p, el cálculo implica valores propios y vectores propios, por lo tanto, si [V, D] = eig(X), entonces X ^ p = V * D. ^ p / V.

10

.^

Fuente de energía de array. A. ^ B es la matriz con elementos A(i,j) elevados a la potencia B(i,j). El tamaño de A y B debe ser el mismo, a menos que uno de ellos sea un escalar.

11

'

Transpuesta de matriz. A' es la transpuesta algebraica de A. Para matrices complejas, es la transpuesta conjugada.

12

'.

Transpuesta de array. Una. ' Es la transpuesta del array A. Para matrices complejas, esto no implica conjugación.

Ejemplo

El siguiente ejemplo muestra el uso de operadores aritméticos con datos escalar. Cree el 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
Al ejecutar el archivo, se producirán los siguientes resultados-
c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

算术运算函数

除了上述算术运算符,MATLAB还提供了以下用于类似目的的命令/函数-

序号功能说明
1

uplus(a)

一元加号;按a的数量递增

2

plus (a,b)

加; 返回a + b

3

uminus(a)

一元减;减少量a

4

minus(a, b)

减; 返回a-b

5

times(a, b)

数组乘法;返回a。* b

6

mtimes(a, b)

矩阵乘法;返回a * b

7

rdivide(a, b)

右数组除法;返回一个./ b

8

ldivide(a, b)

左数组除法;返回a。\ b

9

mrdivide(A, B)

求解线性方程组的系统XA = BX

10

mldivide(A, B)

求解线性方程组的系统Ax = b的用于X

11

power(a, b)

数组幂;返回a.^ b

12

mpower(a, b)

矩阵幂;返回a ^ b

13

cumprod(A)

累积积;返回与包含累积积的数组大小相同的数组。

  • 如果A是一个向量,则cumprod(A)返回一个包含A元素的累加积的向量。

  • 如果A是矩阵,则cumprod(A)返回一个矩阵,其中包含A的每一列的累积乘积。

  • 如果A是多维数组,则将cumprod(A)沿第一个非单维度执行操作。

14

cumprod(A, dim)

返回沿dim的累积乘积。

15

cumsum(A)

累计和 返回包含累积和的数组A。

  • 如果A是一个向量,则cumsum(A)返回一个包含A元素的累加和的向量。

  • 如果A是矩阵,则cumsum(A)返回一个矩阵,其中包含A的每一列的累加和。

  • 如果A是多维数组,则将cumsum(A)沿第一个非单维度执行操作。

16

cumsum(A, dim)

返回沿维度dim的元素的累积和。

17

diff(X)

差异和近似导数;计算X的相邻元素之间的差。

  • 如果X是向量,则diff(X)返回一个向量,该向量比X短一个元素,相邻元素之间的差为[[X(2)-X(1)X(3)-X(2)... X(n)-X(n- 1)]

  • 如果X是矩阵,则diff(X)返回行差矩阵:[X(2:m,:)-X(1:m-1,:)]

18

diff(X,n)

递归地应用diff n次,导致第n个差异。

19

diff(X,n,dim)

Es la función de diferencia n-esima calculada a lo largo de la dimensión especificada por el ángulo oscuro de escalares. Si el orden n es igual o mayor que la longitud de la dimensión dim, diff devuelve un array vacío.

20

prod(A)

El producto de los elementos del array; devuelve el producto de los elementos del array A.

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

  • Si A es una matriz no vacía, considera las columnas de Aprod(A) como vectores y devuelve un vector de filas con el producto de cada columna.

  • Si A es una matriz vacía 0x0, prod(A) devuelve1.

  • Si A es un array multidimensional, prod(A) realiza la operación a lo largo de la primera dimensión no única y devuelve el array de productos. El tamaño de esa dimensión se reduce a1y el tamaño de todas las otras dimensiones se mantiene invariable.

Si el input A es un solo número, la función prod calcula y devuelve B como un solo número. Para todos los otros números y tipos de datos lógicos, prod calcula B y lo devuelve como double.

21

prod(A,dim)

Devuelve el producto de tamaño dim. Por ejemplo, si A es una matriz, prod(A,2) es una columna vectorial que contiene el producto de cada fila.

22

prod(___,datatype)

Multiplica y devuelve el array en la clase especificada por el tipo de datos.

23

sum(A)

  • La suma de los elementos del array; devuelve la suma de los elementos a lo largo de las diferentes dimensiones del array. Si A es un número de coma flotante (es double precision o un solo número de coma flotante), B es acumulado nativo, es decir, en la misma clase que A, y B tiene la misma clase que A. Si A no es un número de coma flotante, B se acumula al doble y tiene la clase doblada.

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

  • Si A es una matriz, considera las columnas de Asum(A) como vectores y devuelve un vector de filas con la suma de cada columna.

  • Si A es un array multidimensional, sum(A) considera el primer valor no de una dimensión como un vector y devuelve un array de vectores de filas.

24

sum(A,dim)

A lo largo del escalardimEspecificadoALa suma de la dimensión.

25

sum(..., 'double')

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

Incluso si A tiene un tipo de datos único o de tipo entero, realiza la adición en double precision y devuelve la respuesta de tipo double. Esta es la configuración predeterminada para los tipos de datos enteros.

26

sum(..., 'native')

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

Ejecuta la adición con el tipo de datos nativo de A y devuelve la respuesta del mismo tipo de datos. Esta es la configuración predeterminada para la suma de una y dos hojas.

27

ceil(A)

Redondea hacia el infinito positivo; redondea los elementos de A al entero más cercano y mayor o igual a A.

28

fix(A)

Redondea hacia cero

29

floor(A)

Redondea hacia menos infinito; redondea los elementos de A al entero más cercano y menor o igual a A.

30

idivide(a, b)

idivide(a, b, 'fix')

División entera con opción de redondeo; igual a a./b es el mismo, excepto que el cociente decimal se redondea al entero más cercano hacia cero.

31

idivide(a, b, 'round')

El cociente fraccional se redondea al entero más cercano.

32

idivide(A, B, 'floor')

El cociente fraccional se redondea al entero más cercano hacia el infinito negativo.

33

idivide(A, B, 'ceil')

El cociente fraccional se redondea al entero más cercano hacia el infinito.

34

mod (X,Y)

El módulo después de la división; devuelve X-n.* Y, donde n = floor(X./Y)。Si Y no es un entero y el cociente X./Y dentro del error de redondeo de los enteros, n es ese entero. Los valores de entrada X e Y deben ser matrices o escalares reales del mismo tamaño (proporcionar Y〜= 0).

Tenga en cuenta-

  • mod(X,0) es X

  • mod(X,X) es 0

  • mod(X,Y) tiene el mismo signo que Y para X〜= Y y Y〜= 0

35

rem (X,Y)

El resto después de la división; devuelve X-n.* Y, donde n = fix(X./Y)。Si Y no es un entero y el cociente X./Y dentro del error de redondeo de los enteros, n es ese entero. Los valores de entrada X e Y deben ser matrices o escalares reales del mismo tamaño (proporcionar Y〜= 0).

Tenga en cuenta-

  • rem(X,0) es NaN

  • rem(X,X) es 0 para X〜= 0

  • rem(X,Y) tiene el mismo signo que X para X〜= Y y Y〜= 0, y el mismo signo que Y para Y〜= 0.

36

round(X)

Redondeada al entero más cercano; redondea los elementos de X al entero más cercano. La parte decimal es 0.5Los elementos positivos se redondean al entero positivo más cercano. La parte decimal es-0.5Los elementos negativos se redondean al entero negativo más cercano.

Operadores de Matlab