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

Operadores do MATLAB

Um operador é um símbolo que informa ao compilador a execução de operações matemáticas ou lógicas específicas. O MATLAB foi projetado para operar principalmente em matrizes e vetores. Portanto, os operadores no MATLAB podem lidar com dados escalar e não-escalar. O MATLAB permite os seguintes tipos de operações básicas-

  • Operadores aritméticos

  • operadores relacionais

  • 逻辑运算符

  • Operadores bit a bit

  • 集合运算符

Operadores aritméticos

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

  • Operações aritméticas matriciais

  • Operações aritméticas vetoriais

As operações aritméticas matriciais são as mesmas que as definidas na álgebra linear. As operações de vetores são executadas elemento a elemento em arrays unidimensionais e multidimensionais.

Os operadores de operações matriciais e vetoriais são distinguidos pelo ponto final (.) símbolo. No entanto, devido às operações de adição e subtração iguais entre matrizes e vetores, os operadores são os mesmos em ambos os casos. A tabela a seguir resume os operadores-

Exemplo de operadores aritméticos

序号operadores e explicações
1

+

adição ou unário sinal de adição. A+B adiciona os valores armazenados nas variáveis A e B. A e B devem ter o mesmo tamanho, a menos que uma delas seja escalar. Escalares podem ser adicionados a qualquer tamanho de matriz.

2

-

subtração ou unário subtração. A-B subtrai o valor de B de A. A e B devem ter o mesmo tamanho, a menos que uma delas seja escalar. Escalares podem ser subtraídos de qualquer tamanho de matriz.

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 uma delas seja escalar.

5

/

barra ou divisão à direita de matriz. B/A e B*inv(A) é aproximadamente o mesmo. Mais exatamente, B/A = (A'\B')'.

6

./

divisão à direita de array. A./B é o elemento A(i,j)/matriz de B(i,j). A e B devem ter o mesmo tamanho, a menos que uma delas 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 a forma de cálculo é diferente. Se A for uma matriz n x n e B for uma coluna vetorial contendo n componentes ou uma matriz contendo várias colunas dessas, então X=A\B é a solução da equação AX=B. Se a proporção de A for severamente ou quase singular, uma mensagem de aviso será exibida.

8

.\

divisão à esquerda de array. A.\B é o elemento B(i,j)/matriz de A(i,j). A e B devem ter o mesmo tamanho, a menos que uma delas seja escalar.

9

^

potência de matriz. Se p for escalar, então X^p é o poder de p. Se p for inteiro, o poder é calculado através de repetição de quadrados. Se o inteiro for negativo, X é invertido primeiro. Para outros valores de p, o cálculo envolve valores próprios e vetores próprios, então se [V, D] = eig(X), então X^p = V*D.^p/V.

10

.^

potência de array. A.^B é a matriz onde o elemento A(i,j) é elevado ao poder B(i,j). A e B devem ter o mesmo tamanho, a menos que uma delas 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 a' é a transposição de array de a. Para matrizes complexas, isso não envolve conjugação.

operadores relacionais

Os operadores relacionais também podem lidar com dados escalares e não escalares. Os operadores relacionais de matrizes executam comparações elementares entre dois arrays e retornam um array lógico de tamanho equivalente, onde os elementos são configurados como lógicos1(true), a relação é true, os elementos são configurados como lógicos 0(false). Não.

A tabela a seguir mostra os operadores relacionais disponíveis no MATLAB-

exemplos de operações relacionais

序号operadores e explicações
1

<

menor

2

<=

menor ou igual

3

>

maior

4

>=

maior ou igual

5

==

igual

6

~=

不等于

逻辑运算符

MATLAB提供两种类型的逻辑运算符和函数-

  • 元素级-这些运算符对逻辑数组的相应元素进行操作。

  • 短路-这些运算符对标量和逻辑表达式进行运算。

逐个元素的逻辑运算符在逻辑数组上逐个元素地进行操作。符号&,|和〜是逻辑数组运算符AND,OR和NOT。

短路逻辑运算符允许逻辑运算短路。符号&&和|| 是逻辑短路运算符AND和OR。

逻辑运算示例

按位运算

按位运算符对位进行运算并执行逐位运算。&,|和^的真值表如下-

pqp&qp | qp ^ Q
00000
01011
11110
10011

假设A = 60; 和B = 13; 现在以二进制格式,它们将如下所示-

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

〜A = 1100 0011

MATLAB为按位运算提供了各种功能,例如``按位与'',``按位或''和``按位非''运算,移位运算等。

下表显示了常用的按位运算-

按位运算示例

函数
作用
bitand(a, b)

整数 a 和 b 的位与

bitcmp(a)

a的逐位补码

bitget(a,pos)

在整数数组a的指定位置获取位

bitor(a, b)

整数a和b的位或

bitset(a, pos)

将bit设置为a的特定位置pos

bitshift(a, k)返回一个由向左移动ķ比特,相当于乘以2 ķk的负值对应于右移位或除以2 | k | 并朝负无穷大四舍五入到最接近的整数。任何溢出位都将被截断。
bitxor(a, b)

整数 a 和 b 的位异或

swapbytes

整数 a 和 b 的位异或

集合运算符

MATLAB提供了用于集合操作的各种功能,例如联合,交集和集合成员资格的测试等。

下表显示了一些常用的设置操作-

集合运算示例

序号功能说明
1

intersect(A,B)

设置两个数组的交集;返回A和B的公共值。返回的值按顺序排列。

2

intersect(A,B,'rows')

将A的每一行和B的每一行视为单个实体,并返回A和B共用的行。返回矩阵的行按排序顺序排列。

3

ismember(A,B)

返回一个与A大小相同的数组,其中包含1(true),其中A的元素位于B中。在其他位置,它返回0(false)。

4

ismember(A,B,'rows')

Considere cada linha de A e cada linha de B como uma entidade única e retorne um array contendo1vetor(true), onde as linhas da matriz A também são linhas da matriz B. Em outros lugares, retorna 0(false).

5

issorted(A)

Se os elementos estiverem ordenados pela ordem de classificação, retorna lógico1(true), caso contrário, retorna lógico 0(false). O entrada A pode ser um vetor ou um N×1ou1×N de array de células de string. Se A e sort(A) forem iguais à saída, considera-se que A está ordenado.

6

issorted(A, 'rows')

Se as linhas da matriz bidimensional A estiverem ordenadas pela ordem de classificação, retorna lógico1(true), caso contrário, retorna lógico 0(false). Se a saída de A e sortrows(A) forem iguais, considera-se que a matriz A está ordenada.

7

setdiff(A,B)

Defina a diferença entre dois arrays; retorne os valores de A que não estão em B. Os valores do array são ordenados pela ordem de classificação.

8

setdiff(A,B,'rows')

Considere cada linha de A e cada linha de B como uma entidade única e retorne as linhas de A que não estão em B. As linhas da matriz retornada são ordenadas pela ordem de classificação.

A opção "rows" não é suportada para arrays de células.

9

setxor

XOR de Dois Arrays

10

union

União de Dois Arrays

11

unique

Valores Únicos em um Array