MATLAB演算子完全ガイド:算術・論理・ビット演算・集合操作
演算子は、コンパイラに特定の数学的または論理的操作を実行するよう指示する記号です。MATLABは主に行列と配列全体を操作するように設計されています。したがって、MATLABの演算子はスカラーと非スカラーデータの両方で動作します。MATLABでは以下の種類の基本演算が可能です:
- 算術演算子
- 関係演算子
- 論理演算子
- ビット演算
- 集合演算
算術演算子
MATLABでは2種類の算術演算が可能です:
- 行列算術演算
- 配列算術演算
行列算術演算は線形代数で定義されているものと同じです。配列演算は、一次元および多次元配列の両方で、要素ごとに実行されます。
行列演算子と配列演算子はピリオド(.)記号で区別されます。ただし、加算と減算は行列と配列で同じであるため、両方の場合で演算子は同じです。以下の表に演算子の簡単な説明を示します:
例を表示
| 番号 | 演算子と説明 | |
|---|---|---|
| 1 | + 加算または単項プラス。A+Bは変数AとBに格納された値を加算。AとBは同じサイズでなければならないが、一方がスカラーの場合は除く。スカラーは任意のサイズの行列に加算可能。 |
|
| 2 | - 減算または単項マイナス。A-BはAからBの値を減算。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は同じサイズでなければならないが、一方がスカラーの場合は除く。 |
|
| 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は同じサイズでなければならないが、一方がスカラーの場合は除く。 |
|
| 9 | ^ 行列累乗。X^pはXのp乗(pがスカラーの場合)。pが整数の場合、累乗は繰り返し二乗で計算。整数が負の場合、Xは最初に逆行列化。その他のpの値の場合、固有値と固有ベクトルを用いて計算。[V,D] = eig(X)とすると、X^p = V*D.^p/V。 |
|
| 10 | .^ 配列累乗。A.^Bは要素A(i,j)のB(i,j)乗を持つ行列。AとBは同じサイズでなければならないが、一方がスカラーの場合は除く。 |
|
| 11 | ' 行列転置。A'はAの線形代数的転置。複素行列の場合、これは複素共役転置。 |
|
| 12 | .' 配列転置。A.'はAの配列転置。複素行列の場合、共役は含まない。 |
関係演算子
関係演算子もスカラーと非スカラーデータの両方で動作します。配列に対する関係演算子は、2つの配列間で要素ごとの比較を実行し、同じサイズの論理配列を返します。関係が真の要素は論理1(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は'ビットごとのAND'、'ビットごとのOR'、'ビットごとのNOT'操作、シフト操作など、ビット単位操作のためのさまざまな関数を提供します。
以下の表は一般的に使用されるビット演算を示しています:
例を表示
| 関数 | 目的 |
|---|---|
| bitand(a, b) | 整数aとbのビットごとのAND |
| bitcmp(a) | 整数aのビットごとの補数 |
| bitget(a, pos) | 整数配列a内の指定位置posのビットを取得 |
| bitor(a, b) | 整数aとbのビットごとのOR |
| bitset(a, pos) | 整数aの特定位置posのビットを設定 |
| bitshift(a, k) | aをkビット左にシフトして返す(2k倍に相当)。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の各行を単一エンティティとして扱い、両方に共通する行を返す。返される行列の行はソート順。 |
| 3 | ismember(A,B) Aと同じサイズの配列を返し、Aの要素がBに見つかる場所では1(true)、それ以外では0(false)を返す。 |
| 4 | ismember(A,B,'rows') Aの各行とBの各行を単一エンティティとして扱い、行列Aの行がBの行でもある場所では1(true)を含むベクトルを返す。それ以外では0(false)。 |
| 5 | issorted(A) Aの要素がソート順の場合は論理1(true)、そうでない場合は論理0(false)を返す。入力AはベクトルまたはN行1列、1行N列の文字列セル配列可能。Aがソート済みと見なされるのは、Aとsort(A)の出力が等しい場合。 |
| 6 | issorted(A, 'rows') 2次元行列Aの行がソート順の場合は論理1(true)、そうでない場合は論理0(false)を返す。行列Aがソート済みと見なされるのは、Aとsortrows(A)の出力が等しい場合。 |
| 7 | setdiff(A,B) 2つの配列の集合差;AにあってBにない値を返す。返される配列の値はソート順。 |
| 8 | setdiff(A,B,'rows') Aの各行とBの各行を単一エンティティとして扱い、AにあってBにない行を返す。返される行列の行はソート順。'rows'オプションはセル配列をサポートしない。 |
| 9 | setxor 2つの配列の排他的論理和 |
| 10 | union 2つの配列の和集合 |
| 11 | unique 配列内のユニークな値 |
MATLAB
- C#演算子完全ガイド:C#における演算子の包括的解説
- C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
- C言語演算子完全ガイド:算術・関係・論理・ビット演算子
- C言語演算子完全ガイド:種類、機能、実例付き解説
- MATLAB徹底解説:数値計算環境の決定版
- MATLAB変数の理解:基礎から実例まで徹底解説
- MATLAB必須コマンドリファレンス:効率的な計算のための完全ガイド
- MATLABデータ型完全ガイド:15種類の基本型と変換・判定関数
- MATLAB演算子完全ガイド:算術・論理・ビット演算・集合操作
- Python 演算子完全マスター: 包括的ガイド
- Java演算子をマスター:種類、構文、実践例
