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

Operações aritméticas do MATLAB

Operadores do Matlab

O MATLAB permite dois tipos diferentes de operações aritméticas-

  • Operações aritméticas de matrizes

  • Operações aritméticas de arrays

As operações aritméticas de matrizes são as mesmas definidas na algebra linear. As operações de arrays são executadas em elementos individuais de arrays unidimensionais e multidimensionais.

Os operadores de operações matriciais e os operadores de arrays são distinguidos pelo ponto final (.) símbolo. No entanto, devido às operações de adição e subtração dos arrays serem idênticas às operações dos arrays, os operadores são os mesmos em ambos os casos.

A tabela a seguir resume a introdução dos operadores-

functionOperadores e descrições
1

+

Adição ou adição unária. A + B adiciona os valores armazenados nas variáveis A e B. A e B devem ter o mesmo tamanho, a menos que um dos dois seja escalar. Pode ser adicionado a qualquer matriz de qualquer tamanho um escalar.

2

-

Subtração ou subtração unária. AB subtrai o valor de B de A. A e B devem ter o mesmo tamanho, a menos que um dos dois seja escalar. Pode ser subtraído de qualquer matriz de qualquer tamanho um escalar.

3

*

Multiplicação de matriz. C = A * B é o produto linear algebraico das matrizes A e B. Mais exatamente,

Para A e B não escalares, o número de colunas de A deve ser igual ao número de linhas de B. Escalares podem ser multiplicados por matrizes de qualquer tamanho.

4

.*

Multiplicação de array. A. * B é o produto elementar dos arrays A e B. A e B devem ter o mesmo tamanho, a menos que um dos dois seja escalar.

5

/

Barra ou divisão direita de matriz. B / A e B *aproximadamente igual a inv(A). Mais exatamente, B / A = (A' \ B')'

6

./

Divisão direita de array. A./B é o elemento A(i,j)/da matriz B(i,j). O tamanho de A e B deve ser o mesmo, a menos que um dos dois seja escalar.

7

\

Barra invertida ou divisão esquerda de matriz. Se A for uma matriz quadrada, então A \ B é equivalente a inv(A)* B é aproximadamente o mesmo, mas calculado de maneira diferente. Se A for uma matriz n×n e B for uma matriz coluna com n componentes ou uma matriz com várias colunas assim, então X = A \ B é a equaçãoAX = Bda solução. Se A estiver escalonado incorretamente ou estiver próximo de singular, uma mensagem de aviso será exibida.

8

.\

Divisão esquerda de array. A. \ B é o elemento B(i,j)/da matriz A(i,j). O tamanho de A e B deve ser o mesmo, a menos que um dos dois seja escalar.

9

^

Potência de matriz. Se p for escalar, então X ^ p é X elevado à potência p. Se p for inteiro, a potência é calculada por repetida multiplicação quadrática. Se o inteiro for negativo, X é invertido antes. Para outros valores de p, a operação envolve valores próprios e vetores característicos, portanto, se [V, D] = eig(X), então X ^ p = V * D. ^ p / V.

10

.^

Fonte de energia de array. A. ^ B é a matriz com elementos A(i,j) elevados ao poder B(i,j). O tamanho de A e B deve ser o mesmo, a menos que um dos dois seja escalar.

11

'

Transposição de matriz. A' é a transposição linear algebraica de A. Para matrizes complexas, é a transposição conjugada.

12

.'

Transposição de array. Uma. ' é a transposição do array A. Para matrizes complexas, isso não envolve conjugação.

Exemplo

O seguinte exemplo mostra a utilização de operadores aritméticos em dados escalar. Crie um arquivo de script usando o seguinte código-

a = 10;
b = 20;
c = a + right array division; returns a.
d = a - right array division; returns a.
e = a * right array division; returns a.
f = a / right array division; returns a.
g = a \ b
x = 7;
y = 3;
z = x ^ y
Ao executar o arquivo, ele produz os seguintes resultados-
c =  30
c = -10
d =  2e =
005f =  0.
0000  2
g =  343

z =

arithmetic operation functions/except the above arithmetic operators, MATLAB also provides the following commands for similar purposes-

functionserial number
1

function description

uplus(a)

2

unary plus; increase by the amount of a

plus (a,b) + right array division; returns a.

3

add; returns a

uminus(a)

4

unary minus; decrease amount a

minus(a, b)-right array division; returns a.

5

subtract; returns a

times(a, b)* right array division; returns a.

6

array multiplication; returns a.

mtimes(a, b) * right array division; returns a.

7

matrix multiplication; returns a

rdivide(a, b)/ right array division; returns a.

8

b

ldivide(a, b)

9

left array division; returns a.\ b

mldivide(A, B)mrdivide(A, B)XA = BX

10

for

mldivide(A, B)solving the system of linear equations Ax = bused forX

11

power(a, b)

array power; returns a.^ b

12

mpower(a, b)

matrix power; returns a ^ b

13

cumprod(A)

Cumulative product; returns an array of the same size as the array containing the cumulative product.

  • If A is a vector, then cumprod(A) returns a vector containing the cumulative product of the elements of A.

  • If A is a matrix, then cumprod(A) returns a matrix containing the cumulative product of each column of A.

  • If A is a multidimensional array, then the cumprod(A) operation is performed along the first non-single dimension.

14

cumprod(A, dim)

Returns alongdimof the cumulative product.

15

cumsum(A)

Cumulative sum returns an array A containing the cumulative sum.

  • If A is a vector, then cumsum(A) returns a vector containing the cumulative sum of the elements of A.

  • If A is a matrix, then cumsum(A) returns a matrix containing the cumulative sum of each column of A.

  • If A is a multidimensional array, then the cumsum(A) operation is performed along the first non-single dimension.

16

cumsum(A, dim)

Returns along the dimensiondimof the cumulative sum of the elements.

17

diff(X)

difference and approximate derivative; calculate the difference between adjacent elements of X.

  • If X is a vector, then diff(X) returns a vector that is one element shorter than X, with the difference between adjacent elements as [[X(2)-X(1)X(3)-X(2)... X(n)-X(n- 1)]

  • If X is a matrix, then diff(X) returns a row difference matrix: [X(2:m,:)-X(1:m-1, :)]

18

diff(X,n)

applied recursivelydiff n times, resulting in the nth difference.

19

diff(X,n,dim)

É a função de diferença n-ésima calculada ao longo da dimensão especificada pelo escalar escalar. Se o grau n for igual ou maior que o comprimento da dimensão dim, diff retorna um array vazio.

20

prod(A)

Produto dos elementos do array; retorna o produto dos elementos do array A.

  • Se A for um vetor, prod(A) retorna o produto dos elementos.

  • Se A for uma matriz não vazia, prod(A) considera as colunas de A como vetores e retorna um vetor de linha com o produto de cada coluna.

  • Se A for uma matriz 0x0 vazia, prod(A) retorna1.

  • Se A for uma matriz multidimensional, prod(A) executa a operação ao longo da primeira dimensão não unidimensional e retorna um array de produtos. O tamanho dessa dimensão diminui para1Enquanto o tamanho de todas as outras dimensões permanece inalterado.

Se o input A for um único número, a função prod calcula e retorna B como um único número. Para todos os outros tipos de dados numéricos e lógicos, prod calcula B e retorna-o como double.

21

prod(A,dim)

Retorna o produto com o tamanho especificado por dim. Por exemplo, se A for uma matriz, prod(A,2) é uma coluna vetorial contendo o produto de cada linha.

22

prod(___,datatype)

Multiplica e retorna o array especificado pelo tipo de dados.

23

sum(A)

  • Soma dos elementos do array; retorna a soma dos elementos ao longo das diferentes dimensões do array. Se A for um número flutuante (double ou float), B é acumulado nativamente, ou seja, na mesma classe que A, e B tem a mesma classe que A. Se A não for um número flutuante, B é acumulado dobrando e tem o dobro da classe.

  • Se A for um vetor, sum(A) retorna a soma dos elementos.

  • Se A for uma matriz, sum(A) considera as colunas de A como vetores e retorna um vetor de linha com a soma de cada coluna.

  • Se A for uma matriz multidimensional, sum(A) considera o primeiro valor não unidimensional como um vetor e retorna um array de vetores de linha.

24

sum(A,dim)

A longo do escalardimEspecificadoASoma da dimensão

25

sum(..., 'double')

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

Mesmo que A tenha um tipo de dados único ou inteiro, a adição é executada com precisão dupla e a resposta é retornada com o tipo de dados double. Esta é a configuração padrão para tipos de dados inteiros.

26

sum(..., 'native')

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

Executa adição com o tipo de dados nativo de A e retorna a resposta com o mesmo tipo de dados. Esta é a configuração padrão para soma de uma e duas cartas.

27

ceil(A)

Arredonda para mais infinito; arredonda os elementos de A para o inteiro mais próximo e maior ou igual a A.

28

fix(A)

Arredonda para zero

29

floor(A)

Arredonda para menos infinito; arredonda os elementos de A para o inteiro mais próximo e menor ou igual a A.

30

idivide(a, b)

idivide(a, b, 'fix')

Divisão inteira com opção de arredondamento; igual a a./b é o mesmo, exceto que a parte decimal é arredondada para o inteiro mais próximo.

31

idivide(a, b, 'round')

O quociente fracionário é arredondado para o inteiro mais próximo.

32

idivide(A, B, 'floor')

O quociente fracionário é arredondado para o inteiro mais próximo, voltando para o infinito negativo.

33

idivide(A, B, 'ceil')

O quociente fracionário é arredondado para o inteiro mais próximo, voltando para o infinito.

34

mod (X,Y)

resto após a divisão; retorna X-n.* Y, onde n = floor(X./Se Y não for um inteiro e o quociente X./Se Y estiver dentro do erro de arredondamento de inteiro, então n é esse inteiro. Os inputs X e Y devem ser arrays reais ou escalares de mesmo tamanho (forneça Y〜= 0).

Atenção-

  • mod(X,0) é X

  • mod(X,X) é 0

  • mod(X,Y) tem o mesmo sinal que Y para X〜= Y e Y〜= 0.

35

rem (X,Y)

resto após a divisão; retorna X-n.* Y, onde n = fix(X./Se Y não for um inteiro e o quociente X./Se Y estiver dentro do erro de arredondamento de inteiro, então n é esse inteiro. Os inputs X e Y devem ser arrays reais ou escalares de mesmo tamanho (forneça Y〜= 0).

Atenção-

  • rem(X,0) é NaN

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

  • rem(X,Y) tem o mesmo sinal que X para X〜= Y e Y〜= 0.

36

round(X)

arredondada para o inteiro mais próximo; os elementos de X serão arredondados para o inteiro mais próximo. A parte decimal é 0.5Os elementos positivos serão arredondados para o inteiro positivo mais próximo. A parte decimal é-0.5Os elementos negativos serão arredondados para o inteiro negativo mais próximo.

Operadores do Matlab