MATLAB-演算子
演算子は、特定の数学的または論理的操作を実行するようにコンパイラーに指示する記号です。MATLABは、主に行列と配列全体を操作するように設計されています。したがって、MATLABの演算子は、スカラーデータと非スカラーデータの両方で機能します。MATLABでは、次のタイプの基本演算が可能です-
- 算術演算子
- 関係演算子
- 論理演算子
- ビット演算
- セット操作
算術演算子
MATLABでは、2種類の算術演算が可能です-
- 行列算術演算
- 配列算術演算
行列算術演算は、線形代数で定義されているものと同じです。配列操作は、1次元配列と多次元配列の両方で要素ごとに実行されます。
行列演算子と配列演算子は、ピリオド(。)記号で区別されます。ただし、加算と減算の演算は行列と配列で同じであるため、演算子はどちらの場合も同じです。次の表に、演算子の簡単な説明を示します-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | + 追加または単項プラス。A + Bは、変数AとBに格納されている値を加算します。AとBは、スカラーでない限り、同じサイズである必要があります。スカラーは、任意のサイズの行列に追加できます。 |
2 | - 減算または単項マイナス。ABはAからBの値を減算します。1つがスカラーでない限り、AとBは同じサイズでなければなりません。スカラーは、任意のサイズの行列から減算できます。 |
3 | * 行列の乗算。C = A * Bは、行列AとBの線形代数積です。より正確には、
非スカラーAおよびBの場合、Aの列の数はBの行の数と等しくなければなりません。スカラーは任意のサイズの行列を乗算できます。 |
4 | .* 配列の乗算。A. * Bは、配列AとBの要素ごとの積です。AとBは、いずれかがスカラーでない限り、同じサイズである必要があります。 |
5 | / スラッシュまたは行列の右除算。B / AはB * inv(A)とほぼ同じです。より正確には、B / A =(A '\ B') '。 |
6 | ./ 配列の右除算。A./Bは、要素A(i、j)/ B(i、j)を持つ行列です。AとBのいずれかがスカラーでない限り、AとBは同じサイズである必要があります。 |
7 | \ バックスラッシュまたは行列の左除算。Aが正方行列の場合、A \ Bはinv(A)* Bとほぼ同じですが、計算方法が異なります。Aがn行n列の行列で、Bがn個の成分を持つ列ベクトル、またはそのような列がいくつかある行列の場合、X = A \ Bは方程式AX = Bの解です。Aのスケーリングが不適切であるか、ほぼ特異である場合、警告メッセージが表示されます。 |
8 | .\ 配列の左除算。A. \ Bは、要素B(i、j)/ A(i、j)を持つ行列です。AとBのいずれかがスカラーでない限り、AとBは同じサイズである必要があります。 |
9 | ^ マトリックスパワー。pがスカラーの場合、X ^ pはXのp乗です。pが整数の場合、累乗は2乗を繰り返すことによって計算されます。整数が負の場合、Xが最初に反転されます。pの他の値の場合、計算には固有値と固有ベクトルが含まれ、[V、D] = eig(X)の場合、X ^ p = V *D。^ p / Vとなります。 |
10 | .^ アレイパワー。A. ^ Bは、要素A(i、j)のB(i、j)乗の行列です。AとBのいずれかがスカラーでない限り、AとBは同じサイズである必要があります。 |
11 | ' 行列の転置。A 'はAの線形代数転置です。複素行列の場合、これは複素共役転置です。 |
12 | .' 配列転置。A.」はAの配列転置です。複素行列の場合、これには共役は含まれません。 |
関係演算子
関係演算子は、スカラーデータと非スカラーデータの両方を処理することもできます。配列の関係演算子は、2つの配列間で要素ごとの比較を実行し、同じサイズの論理配列を返します。要素は論理1(true)に設定され、関係はtrueに設定され、要素は論理0(false)に設定されます。そうではありません。
次の表は、MATLABで使用できる関係演算子を示しています。
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | < 未満 |
2 | <= 以下 |
3 | > 大なり記号 |
4 | >= 以上 |
5 | == に等しい |
6 | ~= 等しくない |
論理演算子
MATLABは、2種類の論理演算子と関数を提供します-
要素ごと-これらの演算子は、論理配列の対応する要素を操作します。
短絡-これらの演算子は、スカラー式および論理式を操作します。
要素ごとの論理演算子は、論理配列上で要素ごとに操作します。記号&、|、および〜は、論理配列演算子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のビット単位のAND |
bitcmp(a) | のビット単位の補数A |
bitget(a、pos) | 整数配列aの指定された位置posでビットを取得します。 |
bitor(a、b) | 整数aとbのビットごとのOR |
bitset(a、pos) | 特定の位置に設定ビットのPOSのA |
ビットシフト(a、k) | 戻り値により左にシフトk個の2を乗算に相当するビット、K。kの負の値は、ビットを右にシフトするか、2で割ることに対応します| k | 負の無限大に向かって最も近い整数に丸めます。オーバーフロービットはすべて切り捨てられます。 |
bitxor(a、b) | 整数aとbのビット単位のXOR |
swapbytes | バイト順序を入れ替える |
セット操作
MATLABは、和集合、共通部分、集合メンバーシップのテストなど、集合演算のためのさまざまな関数を提供します。
次の表は、一般的に使用されるいくつかのセット操作を示しています-
例を表示
シニア番号 | 機能と説明 |
---|---|
1 | intersect(A,B) 2つの配列の共通部分を設定します。AとBの両方に共通の値を返します。返される値はソートされた順序です。 |
2 | intersect(A,B,'rows') Aの各行とBの各行を単一のエンティティとして扱い、AとBの両方に共通の行を返します。返される行列の行はソートされた順序になっています。 |
3 | ismember(A,B) Aの要素がBにある1(true)を含む、Aと同じサイズの配列を返します。それ以外の場合は、0(false)を返します。 |
4 | ismember(A,B,'rows') Aの各行とBの各行を単一のエンティティとして扱い、1(true)を含むベクトルを返します。行列Aの行もBの行です。それ以外の場合は、0(false)を返します。 |
5 | issorted(A) Aの要素がソートされた順序である場合は論理1(true)を返し、そうでない場合は論理0(false)を返します。入力Aは、ベクトル、または文字列のN行1列または1行N列のセル配列にすることができます。A is considered to be sorted if A そしてsort(A)の出力は等しい。 |
6 | issorted(A, 'rows') 2次元行列Aの行がソートされた順序である場合は論理1(true)を返し、それ以外の場合は論理0(false)を返します。 Matrix A is considered to be sorted if A そしてsortrows(A)の出力は等しい。 |
7 | setdiff(A,B) 2つの配列の差を設定します。BにないAの値を返します。返される配列の値はソートされた順序になっています。 |
8 | setdiff(A,B,'rows') Aの各行とBの各行を単一のエンティティとして扱い、BにないAからの行を返します。返される行列の行はソートされた順序になっています。 'rows'オプションはセル配列をサポートしていません。 |
9 | setxor 2つの配列の排他的論理和を設定します |
10 | union 2つの配列の和集合を設定します |
11 | unique 配列内の一意の値 |