MATLAB - 演算子
演算子は、特定の数学的操作または論理操作を実行するようにコンパイラに指示する記号です。 MATLAB は、主に行列と配列全体を操作するように設計されています。したがって、MATLAB の演算子は、スカラー データと非スカラー データの両方で機能します。 MATLAB では、次のタイプの基本演算が可能です −
- 算術演算子
- 関係演算子
- 論理演算子
- ビット演算
- 設定操作
算術演算子
MATLAB では 2 種類の算術演算が可能です −
- 行列算術演算
- 配列算術演算
行列算術演算は、線形代数で定義されているものと同じです。配列操作は、1 次元配列と多次元配列の両方で、要素ごとに実行されます。
行列演算子と配列演算子は、ピリオド (.) 記号で区別されます。ただし、加算と減算の操作は行列と配列で同じであるため、演算子は両方の場合で同じです。次の表は、演算子の簡単な説明を示しています −
例を表示
Sr.No. | 演算子と説明 |
---|---|
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 のいずれかがスカラーでない限り、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 は、p がスカラーの場合、X の 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) に設定され、関係が true であり、要素は論理 0 (false) に設定されます。
次の表は、MATLAB で使用可能な関係演算子を示しています −
例を表示
Sr.No. | 演算子と説明 |
---|---|
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 のビットごとの AND そしてb |
bitcmp(a) | a のビットごとの補数 |
bitget(a,pos) | 指定位置 pos のビットを取得 、整数配列 a 内 |
bitor(a, b) | 整数 a のビットごとの OR そしてb |
bitset(a, pos) | 特定の位置 pos にビットをセット aの |
bitshift(a, k) | a を返します 左に k シフト ビット、2 k を掛けることに相当 . k の負の値は、ビットを右にシフトするか、2 |k| で除算することに対応します。 負の無限大に向かって最も近い整数に丸めます。オーバーフロー ビットは切り捨てられます。 |
bitxor(a, b) | 整数 a のビット単位の XOR そしてb |
スワップバイト | スワップ バイト順 |
設定操作
MATLAB は、和集合、交差、セット メンバーシップのテストなど、セット演算用のさまざまな関数を提供します。
次の表は、一般的に使用される集合演算の一部を示しています −
例を表示
Sr.No. | 機能と説明 |
---|---|
1 | 交差(A,B) 2 つの配列の交点を設定します。 A と B の両方に共通する値を返します。返される値はソートされた順序です。 |
2 | intersect(A,B,'rows') A の各行と B の各行を単一のエンティティとして扱い、A と B の両方に共通の行を返します。返される行列の行は並べ替えられた順序になります。 |
3 | ismember(A,B) A と同じサイズの配列を返し、A の要素が B にある場合は 1 (真) を含み、それ以外の場合は 0 (偽) を返します。 |
4 | ismember(A,B,'rows') A の各行と B の各行を単一のエンティティとして扱い、行列 A の行が B の行でもある 1 (真) を含むベクトルを返します。それ以外の場合は、0 (偽) を返します。 |
5 | 並べ替え済み(A) A の要素がソートされている場合は論理値 1 (真) を返し、それ以外の場合は論理値 0 (偽) を返します。入力 A は、ベクトル、または文字列の N 行 1 列または 1 行 N 列の cell 配列にすることができます。 A の場合、A はソートされていると見なされます と sort(A) の出力は等しい. |
6 | issorted(A, 'rows') 2 次元行列 A の行が並べ替えられている場合は論理値 1 (真) を返し、それ以外の場合は論理値 0 (偽) を返します。 A の場合、行列 A はソートされていると見なされます と sortrows(A) の出力は同じです。 |
7 | setdiff(A,B) 2 つの配列の差を設定します。 B にはない A の値を返します。返される配列の値はソートされた順序になっています。 |
8 | setdiff(A,B,'rows') A の各行と B の各行を単一のエンティティとして扱い、B にない A の行を返します。返される行列の行は並べ替えられた順序になります。 'rows' オプションは cell 配列をサポートしていません。 |
9 | setxor 2 つの配列の排他的論理和を設定します |
10 | 組合 2 つの配列の結合を設定します |
11 | ユニーク 配列内の一意の値 |
MATLAB