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

MATLAB-Operator

Ein Operator ist ein Symbol, das dem Compiler mitteilt, welche spezifische mathematische oder logische Operation ausgeführt werden soll. MATLAB wurde hauptsächlich für den Betrieb auf整个矩阵 und Arrays entworfen. Daher können die Operatoren in MATLAB sowohl skalare Daten als auch nicht-skalare Daten verarbeiten. MATLAB ermöglicht folgende Arten grundlegender Operationen-

  • Arithmetische Operatoren

  • Verhältnisoperationen

  • 逻辑运算符

  • Bitweise Operatoren

  • 集合运算符

Arithmetische Operatoren

MATLAB ermöglicht zwei verschiedene Arten von arithmetischen Operationen-

  • Arithmetische Operationen für Matrizen

  • Arithmetische Operationen für Arrays

Die arithmetischen Operationen der Matrix sind identisch mit den in der linearen Algebra definierten. Arrayoperationen werden auf eindimensionalen und mehrdimensionalen Arrays elementweise ausgeführt.

Matrizenoperatoren und Arrayoperatoren werden durch den Punkt (.) symbolisch unterschieden. Da jedoch die Addition und Subtraktion von Matrizen und Arrays identisch sind, sind die Operatoren in beiden Fällen gleich. In der folgenden Tabelle werden die Operatoren kurz vorgestellt-

Beispiel für arithmetische Operatoren

序号Operatoren und Erklärung
1

+

Addition oder Einmaleins-Plus. A+B addiert die Werte, die in den Variablen A und B gespeichert sind. A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar. Skalare können zu Matrizen jeder Größe hinzugefügt werden.

2

-

Subtraktion oder Einmaleins-Subtraktion. A-B zieht den Wert von B von A ab. A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar. Skalare können von jeder Größe der Matrix abgezogen werden.

3

*

Matrixmultiplikation. C=A*B ist das lineare algebraische Produkt der Matrizen A und B. Genauer gesagt,

Für nicht-skalarme A und B muss die Anzahl der Spalten von A gleich der Anzahl der Zeilen von B sein. Skalare können mit Matrizen jeder Größe multipliziert werden.

4

.*

Array-Multiplikation. A.*B ist das Elementwise-Produkt des Arrays A und B. A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar.

5

/

Schießگاه oder Matrix-rechtsdividiert. B/A und B*inv(A) ist ungefähr gleich. Genauer gesagt, B/A = (A'\B')'.

6

./

Array-rechtsdividiert. A./B ist das Element A(i,j)/Matrix von B(i,j). A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar.

7

\

Backslash oder Matrix-linksdividiert. Wenn A eine Quadratmatrix ist, dann ist A\B gleich inv(A)*B ist ungefähr gleich, nur die Berechnung ist unterschiedlich. Wenn A eine n mal n Matrix ist und B eine Spaltenvektor mit n Komponenten ist oder eine Matrix mit mehreren solchen Spalten, dann ist X=A\B die Lösung der Gleichung AX=B. Wenn das Verhältnis von A schwer oder fast singulär ist, wird eine Warnmeldung angezeigt.

8

.\

Array-linksdividiert. A.\B ist das Element B(i,j)/Matrix von A(i,j). A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar.

9

^

Matrix-Potenz. Wenn p ein Skalar ist, dann ist X^p die Potenz von p. Wenn p ein ganzzahliges ist, wird die Potenz durch wiederholte Quadratmultiplikation berechnet. Wenn das ganzzahlige negative ist, wird X vorher auf den Kehrwert gesetzt. Für andere Werte von p beinhaltet die Berechnung Eigenwerte und Eigenvektoren, daher wenn [V, D] = eig(X), dann ist X^p = V*D.^p/V.

10

.^

Array-Potenz. A.^B ist das Array, bei dem das Element A(i,j) zur Potenz B(i,j) erhoben wird. A und B müssen die gleiche Größe haben, es sei denn, eines der beiden ist ein Skalar.

11

'

Matrix-Drehen. A' ist die lineare algebraische Drehung von A. Bei komplexen Matrizen ist dies die komplexe Konjugationsdrehung.

12

'.

Array-Drehen a' ist die Drehung des Arrays a. Bei komplexen Matrizen betrifft dies keine Konjugation.

Verhältnisoperationen

Verhältnisoperationen können auch Skalare und nicht-skalarme Daten verarbeiten. Array-Verhältnisoperationen führen eine Elementwise-Vergleich zwischen zwei Arrays durch und geben ein Array gleicher Größe zurück, wobei die Elemente auf logische1(true), das Verhältnis ist true, die Elemente werden auf logische 0 (false) gesetzt. Nicht.

Die folgende Tabelle zeigt die verfügbaren Verhältnisoperationen in MATLAB-

Beispiele für Verhältnisoperationen

序号Operatoren und Erklärung
1

<

kleiner

2

<=

kleiner oder gleich

3

>

größer

4

>=

größer oder gleich

5

==

gleich

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')

Jedes Zeilenpaar von A und B als Einheit betrachten und eine enthaltenen1Vektor(true), bei dem die Zeilen der Matrix A auch die Zeilen von B sind. An anderen Orten wird 0(false) zurückgegeben.

5

issorted(A)

wenn die Elemente in sortierter Reihenfolge angeordnet sind, wird logischer1(true), andernfalls wird logischer 0(false) zurückgegeben. Der Eingang A kann ein Vektor oder eine N×1oder1×N-Stringzellenarray. Wenn A und sort(A) gleich sind, wird A als sortiert angesehen.

6

issorted(A, 'rows')

Wenn die Zeilen eines zweidimensionalen Matrizes A in sortierter Reihenfolge angeordnet sind, wird logischer1(true), andernfalls wird logischer 0(false) zurückgegeben. Wenn die Ausgabe von A und sortrows(A) gleich ist, wird die Matrix A als sortiert angesehen.

7

setdiff(A,B)

Differenz zwischen zwei Arrays einstellen; die Werte von A zurückgeben, die nicht in B enthalten sind. Die Werte im Array werden in sortierter Reihenfolge angeordnet.

8

setdiff(A,B,'rows')

Jedes Zeilenpaar von A und B als Einheit betrachten und die Zeilen von A zurückgeben, die nicht in B enthalten sind. Die Zeilen des Matrizes werden in sortierter Reihenfolge angeordnet.

Die Option "rows" wird für Zellenarrays nicht unterstützt.

9

setxor

XOR zweier Arrays

10

union

Union zweier Arrays

11

unique

Eindeutige Werte im Array