English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un operador es un símbolo que informa al compilador que se debe realizar una operación matemática o lógica específica. MATLAB está diseñado para ejecutarse principalmente en matrices y arrays. Por lo tanto, los operadores en MATLAB pueden manejar tanto datos escalar como datos no escalares. MATLAB permite los siguientes tipos de operaciones básicas-
Operadores aritméticos
Operadores relacionales
逻辑运算符
Operadores de bits
集合运算符
MATLAB permite dos tipos diferentes de operaciones aritméticas-
Operaciones aritméticas de matrices
Operaciones aritméticas de matrices
Las operaciones aritméticas de matrices son las mismas que las definidas en el álgebra lineal. Las operaciones de matrices se realizan elemento por elemento en matrices unidimensionales y multidimensionales.
Los operadores de operaciones de matrices y operadores de matrices se distinguen mediante el símbolo de punto (.) However, since the addition and subtraction operations of matrices and arrays are the same, the operators are the same in both cases. The following table briefly introduces the operators-
Ejemplo de operadores aritméticos
序号 | Operadores y explicaciones |
---|---|
1 | + Adición o unario de suma. A+B sumará los valores almacenados en las variables A y B. A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar. Los escalares pueden sumarse a matrices de cualquier tamaño. |
2 | - Resta o una resta unaria. A-B restará el valor de B de A. A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar. Los escalares pueden restarse 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 matrices. 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 matrices. B/A y B*inv(A) es más o menos la misma. Más exactamente, B/A = (A'\B')'. |
6 | ./ División derecha de matrices. A./B es el elemento A(i,j)/Matriz de 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 izquierda de matrices. Si A es una matriz cuadrada, entonces A\B es equivalente a inv(A)*B es más o menos la misma, solo que la forma de cálculo es diferente. Si A es una matriz n x n y B es una columna vector con n componentes o una matriz que contiene múltiples columnas de este tipo, entonces X=A\B es la solución de la ecuación AX=B. Si la proporción de A es muy grande o casi singular, se mostrará un mensaje de advertencia. |
8 | .\ División izquierda de matrices. A.\B es el elemento B(i,j)/Matriz de A(i,j). A y B deben tener el mismo tamaño, a menos que uno de ellos sea un escalar. |
9 | ^ Potencia de matrices. Si p es un escalar, entonces X^p es la potencia de p. Si p es un entero, se calcula la potencia mediante la repetición de la potencia cuadrática. Si el entero es negativo, X se invierte 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 | ^. Potencia de matrices. A.^B es la matriz donde el elemento A(i,j) es elevado 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 | ' Transpuesta de matrices. A' es la transpuesta algebraica de A. Para matrices complejas, es la transpuesta conjugada. |
12 | .' Transpuesta de matrices a'. Es la transpuesta de la matriz a. Para matrices complejas, esto no implica conjugación. |
Los operadores relacionales también pueden manejar datos escalares y no escalares. Los operadores relacionales de matrices ejecutan comparaciones elementales entre dos matrices y devuelven un array lógico de igual tamaño, donde los elementos se establecen en lógico1(true), la relación es true, los elementos se establecen en lógico 0(false). No.
La tabla a continuación muestra los operadores relacionales disponibles en MATLAB-
Ejemplos de operaciones relacionales
序号 | Operadores y explicaciones |
---|---|
1 | < menor |
2 | <= menor o igual |
3 | > mayor |
4 | >= mayor o 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') Tome cada fila de A y cada fila de B como una entidad única y devuelva una que contiene1de vectores(true), donde las filas de la matriz A también son filas de B. En otros lugares, devuelve 0(false). |
5 | issorted(A) Si los elementos están ordenados en orden de clasificación, devuelve lógico1(true), de lo contrario devuelve lógico 0(false). La entrada A puede ser un vector o un N×1o1×N del array de celdas de cadenas. Si A y sort(A) son iguales a la salida, se considera que A está ordenado. |
6 | issorted(A, 'rows') Si las filas del array bidimensional A están ordenadas en orden de clasificación, devuelve lógico1(true), de lo contrario devuelve lógico 0(false). Si la salida de A y sortrows(A) son iguales, se considera que la matriz A está ordenada. |
7 | setdiff(A,B) Establecer la diferencia entre dos arrays; devolver los valores que no están en B. Los valores del array se ordenan en orden de clasificación. |
8 | setdiff(A,B,'rows') Tome cada fila de A y cada fila de B como una entidad única y devuelva las filas de A que no están en B. Las filas de la matriz devuelta se ordenan en orden de clasificación. La opción "rows" no es compatible con arrays de celdas. |
9 | setxor XOR de dos arrays |
10 | union Unión de dos arrays |
11 | unique Valores únicos en el array |