English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un opérateur est un symbole qui indique au compilateur d'exécuter une opération mathématique ou logique spécifique. MATLAB est conçu pour fonctionner principalement sur des matrices et des arrays. Par conséquent, les opérateurs dans MATLAB peuvent gérer à la fois des données scalaires et des données non scalaires. MATLAB permet les types d'opérations de base suivants-
Opérateurs arithmétiques
Opérateurs relationnels
逻辑运算符
Opérateurs bit à bit
集合运算符
MATLAB permet deux types différents d'opérations arithmétiques-
Opérations arithmétiques matricielles
Opérations arithmétiques sur les arrays
Les opérations arithmétiques matricielles sont identiques à celles définies en algèbre linéaire. Les opérations sur les arrays sont exécutées élément par élément sur les arrays unidimensionnels et multidimensionnels.
Les opérateurs de calcul matriciel et les opérateurs d'array sont distingués par le point d'exclamation (.)。Cependant, en raison des opérations d'addition et de soustraction similaires entre matrices et arrays, les opérateurs dans les deux cas sont identiques. Le tableau suivant présente brièvement les opérateurs-
Exemples d'opérateurs d'arithmétique
序号 | Opérateurs et explications |
---|---|
1 | + Addition ou ajout unilatéral. A+B ajoute les valeurs stockées dans les variables A et B. A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. Un scalaire peut être ajouté à une matrice de toute taille. |
2 | - Soustraction ou soustraction unilatérale. A-B soustrait la valeur de B de A. A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. Un scalaire peut être soustrait de toute taille de matrice. |
3 | * Multiplication de matrice. C=A*B est le produit algébrique des matrices A et B. Plus précisément, Pour des A et B non scalaire, le nombre de colonnes d'A doit être égal au nombre de lignes de B. Un scalaire peut être multiplié avec une matrice de toute taille. |
4 | .* Multiplication d'array. A.*B est le produit élémentaire des arrays A et B. A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. |
5 | / Barre oblique ou division de right. B/A et B*inv(A) est approximativement la même chose. Plus précisément, B/A = (A'\B')'. |
6 | ./ Division de right d'array. A./B est l'élément A(i,j)/Matrice de B(i,j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. |
7 | \ Barre oblique ou division de left de matrice. Si A est une matrice carrée, alors A\B est égal à inv(A)*B est approximativement la même chose, mais les méthodes de calcul sont différentes. Si A est une matrice n*n, et B est une colonne vectorielle contenant n composantes ou une matrice contenant plusieurs colonnes de ce type, alors X=A\B est la solution de l'équation AX=B. Si la proportion d'A est sévère ou presque singulière, un message d'avertissement sera affiché. |
8 | .\ Division de left d'array. A.\B est l'élément B(i,j)/Matrice de A(i,j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. |
9 | ^ Puissance de matrice. Si p est un scalaire, alors X^p est la puissance de p. Si p est un entier, la puissance est calculée par multiplication répétée. Si l'entier est négatif, X est d'abord inversé. Pour les autres valeurs de p, le calcul implique les valeurs propres et les vecteurs propres, donc si [V, D] = eig(X), alors X^p = V*D.^p/V. |
10 | ^. Puissance d'array. A.^B est la matrice où l'élément A(i,j) est élevé à la puissance B(i,j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire. |
11 | ' Transposition de matrice. A' est la transposition algébrique de A. Pour les matrices complexes, c'est la transposition conjuguée. |
12 | .' Transposition d'array a' est la transposition de l'array a. Pour les matrices complexes, cela ne concerne pas la conjuguée. |
Les opérateurs relationnels peuvent également traiter des données scalaire et non scalaire. Les opérateurs relationnels d'array effectuent une comparaison élément par élément entre deux arrays et retournent un array logique de la même taille, où les éléments sont définis comme logiques1(true), la relation est true, les éléments sont définis comme logiques 0(false). Pas de.
Le tableau suivant montre les opérateurs relationnels disponibles dans MATLAB-
Exemples d'opérations relationnelles
序号 | Opérateurs et explications |
---|---|
1 | < inférieur |
2 | <= inférieur ou égal à |
3 | > supérieur |
4 | >= supérieur ou égal à |
5 | == égal à |
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') Considérez chaque ligne de A et chaque ligne de B comme une entité unique, et retournez un tableau contenant1vecteur(true), où les lignes de la matrice A sont également les lignes de B. Sinon, il retourne 0(false). |
5 | issorted(A) Si les éléments sont triés par ordre de tri, alors retourner la valeur logique1(true), sinon retourner la valeur logique 0(false). L'entrée A peut être un vecteur, ou un tableau N×1ou1×N tableau de cellules de chaînes de caractères. Si A et sort(A) sont égaux à la sortie, alors on considère que A est trié. |
6 | issorted(A, 'rows') Si les lignes de la matrice bidimensionnelle A sont triées par ordre de tri, alors retourner la valeur logique1(true), sinon retourner la valeur logique 0(false). Si la sortie de A et sortrows(A) sont égales, alors on considère que le matrice A est triée. |
7 | setdiff(A,B) Définir la différence entre deux tableaux; retourner les valeurs qui ne se trouvent pas dans B. Les valeurs du tableau sont triées par ordre de tri. |
8 | setdiff(A,B,'rows') Considérez chaque ligne de A et chaque ligne de B comme une entité unique, et retournez les lignes de A qui ne se trouvent pas dans B. Le tableau de lignes est trié par ordre de tri. L'option "rows" n'est pas prise en charge pour les tableaux de cellules. |
9 | setxor XOR de deux tableaux |
10 | union Union de deux tableaux |
11 | unique Valeurs uniques dans le tableau |