Matlab-operators

提供:Dev Guides
移動先:案内検索

MATLAB-演算子

演算子は、特定の数学的または論理的な操作を実行するようコンパイラーに指示する記号です。 MATLABは、主に行列と配列全体で動作するように設計されています。 したがって、MATLABの演算子は、スカラーデータと非スカラーデータの両方で機能します。 MATLABは、次の種類の基本操作を許可します-

  • 算術演算子
  • 関係演算子
  • 論理演算子
  • ビット演算
  • セット操作

算術演算子

MATLABでは、2種類の算術演算が可能です-

  • 行列算術演算 *配列算術演算

行列算術演算は、線形代数で定義されているものと同じです。 配列操作は、1次元配列と多次元配列の両方で、要素ごとに実行されます。

行列演算子と配列演算子は、ピリオド(。)記号で区別されます。 ただし、加算と減算の演算は行列と配列で同じなので、演算子は両方の場合で同じです。 次の表は、演算子の簡単な説明を示します-

リンク:/matlab/matlab_arithmetic_operators [例を表示]

Sr.No. Operator & Description
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は、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は、どちらかがスカラーでない限り、同じサイズでなければなりません。

11

''

マトリックス転置。 A 'はAの線形代数転置です。 複素行列の場合、これは複素共役転置です。

12

.'

配列転置。 A. ' Aの配列転置です。 複雑な行列の場合、これには共役は含まれません。

関係演算子

関係演算子は、スカラーデータと非スカラーデータの両方で機能することもできます。 配列の関係演算子は、2つの配列間で要素ごとの比較を実行し、同じサイズの論理配列を返します。関係がtrueの場合は論理1(true)に設定され、要素は論理0(false)に設定されますありません。

次の表は、MATLABで利用可能な関係演算子を示しています-

link:/matlab/matlab_relational_operators [例を表示]

Sr.No. Operator & Description
1

<

未満

2

より小さいか等しい

3

>

より大きい

4

>=

以上

5

== ==

に等しい

6

~=

等しくない

論理演算子

MATLABは、論理演算子と関数の2種類を提供しています-

  • 要素単位-これらの演算子は、論理配列の対応する要素を操作します。 *短絡-これらの演算子はスカラーおよび論理式で動作します。

要素単位の論理演算子は、論理配列の要素ごとに動作します。 記号&、|、および〜は、論理配列演算子AND、OR、およびNOTです。

短絡論理演算子は、論理演算の短絡を可能にします。 記号&&および||論理短絡演算子ANDおよびORです。

リンク:/matlab/matlab_logical_operators [例を表示]

ビット演算

ビットごとの演算子はビットに対して機能し、ビットごとの操作を実行します。 &、|、および^の真理値表は次のとおりです-

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

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」演算、シフト演算などのビット単位演算用のさまざまな関数を提供します。

次の表は、一般的に使用されるビット演算を示しています-

link:/matlab/matlab_bitwise_operators [例を表示]

[cols="^,",options="header",]
|===
|Function |Purpose |bitand(a, b) |Bit-wise AND of integers _a_ and _b_ |bitcmp(a) |Bit-wise complement of _a_ |bitget(a,pos) |Get bit at specified position _pos_, in the integer array _a_ |bitor(a, b) |Bit-wise OR of integers _a_ and _b_ |bitset(a, pos) |Set bit at specific location _pos_ of _a_ |bitshift(a, k) |Returns _a_ shifted to the left by _k_ bits, equivalent to multiplying by 2^k^. Negative values of k correspond to shifting bits right or dividing by 2^|k|^ and rounding to the nearest integer towards negative infinite. Any overflow bits are truncated. |bitxor(a, b) |Bit-wise XOR of integers _a_ and _b_ |swapbytes |Swap byte ordering
|===

=== セット操作

MATLABは、集合、交差、集合メンバーシップのテストなどの集合演算用のさまざまな関数を提供します。

次の表は、いくつかの一般的に使用されるセット操作を示しています-

link:/matlab/matlab_set_operators [例を表示]

[width="100%",cols="50%,50%",options="header",]
|===
|Sr.No. |Function & Description |1 a|* intersect(A,B)*

2つの配列の共通部分を設定します。 AとBの両方に共通の値を返します。 返される値はソートされた順序です。

|2 a| *intersect(A,B,'rows')*

Aの各行とBの各行を単一のエンティティとして扱い、AとBの両方に共通の行を返します。 返されたマトリックスの行はソートされた順序になります。

|3 a| *ismember(A,B)*

Aと同じサイズの配列を返します。Aの要素がBにある場合は1(true)が含まれます。 それ以外の場合、0(false)を返します。

|4 a| *ismember(A,B,'rows')*

Aの各行とBの各行を単一のエンティティとして扱い、行列Aの行もBの行でもある1(true)を含むベクトルを返します。 それ以外の場合、0(false)を返します。

|5 a| *issorted(A)*

Aの要素が並べ替えられている場合は論理値1(true)を返し、そうでない場合は論理値0(false)を返します。 入力Aは、ベクトル、または文字列のN行1列または1行N列のセル配列です。 *Aは、A* とsort(A)の出力が等しい場合にソートされたと見なされます。

|6 a| *issorted(A, 'rows')*

2次元行列Aの行が並べ替えられている場合は論理値1(true)を返し、そうでない場合は論理値0(false)を返します。 *A* とsortrows(A)の出力が等しい場合、マトリックスAはソートされていると見なされます。

|7 a| *setdiff(A,B)*

2つの配列の差を設定します。 BにないAの値を返します。 返される配列の値は、ソートされた順序になっています。

|8 a| *setdiff(A,B,'rows')*

Aの各行とBの各行を単一のエンティティとして扱い、BにないAの行を返します。 返されたマトリックスの行はソートされた順序になります。

'rows'オプションはセル配列をサポートしません。

|9 a| *setxor*

2つの配列の排他的ORを設定します

|10 a| *union*

2つの配列の和集合を設定します

|11 a| *unique*

配列内の一意の値

|===