English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
集合运算符
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. |
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。
按位运算符对位进行运算并执行逐位运算。&,|和^的真值表如下-
p | q | p&q | p | q | p ^ Q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
假设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 |