Matlab-arithmetic-operators

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

MATLAB-算術演算

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

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

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

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

次の表は、演算子の簡単な説明を示します-

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の配列転置です。 複雑な行列の場合、これには共役は含まれません。

次の例は、スカラーデータでの算術演算子の使用を示しています。 次のコードでスクリプトファイルを作成します-

a = 10;
b = 20;
c = a + b
d = a - b
e = a *b
f = a/b
g = a \ b
x = 7;
y = 3;
z = x ^ y

ファイルを実行すると、次の結果が生成されます-

c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

算術演算の関数

上記の算術演算子とは別に、MATLABは同様の目的で使用される以下のコマンド/関数を提供します-

Sr.No. Function & Description
1
  • uplus(a)*

単項プラス;量aずつ増加します

2

plus (a,b)

プラス; a + bを返します

3

uminus(a)

単項マイナス; aの量だけ減少する

4

minus(a, b)

マイナス; a-bを返します

5

times(a, b)

配列乗算; a。 *bを返します

6
  • mtimes(a, b)*

行列乗算; a *bを返します

7
  • rdivide(a, b)*

右アレイ分割。 a ./bを返します

8

ldivide(a, b)

左配列分割。 a。\ bを返します

9

mrdivide(A, B)

線形方程式系を解く_xA = B_について_x_

10

mldivide(A, B)

線形方程式のシステム_Ax = B_を_x_について解きます

11

power(a, b)

アレイ電力。 a。^ bを返します

12

mpower(a, b)

マトリックス力; ^ bを返します

13

cumprod(A)

累積製品;累積積を含む配列Aと同じサイズの配列を返します。

  • Aがベクトルの場合、cumprod(A)は、Aの要素の累積積を含むベクトルを返します。
  • Aが行列の場合、cumprod(A)は、Aの各列の累積積を含む行列を返します。 *Aが多次元配列の場合、cumprod(A)は最初の1でない次元に沿って機能します。
14
  • cumprod(A, dim)*

次元_dim_に沿った累積積を返します。

15

cumsum(A)

累積合計;累積合計を含む配列Aを返します。

  • Aがベクトルの場合、cumsum(A)は、Aの要素の累積和を含むベクトルを返します。
  • Aが行列の場合、cumsum(A)は、Aの各列の累積和を含む行列を返します。 *Aが多次元配列の場合、cumsum(A)は最初の1でない次元に沿って機能します。
16
  • cumsum(A, dim)*

次元_dim_に沿った要素の累積合計を返します。

17

diff(X)

差と近似導関数; Xの隣接する要素間の差を計算します。

  • Xがベクトルの場合、diff(X)は、隣接する要素間の差のベクトル(Xより1要素短い)を返します。[X(2)-X(1)X(3)-X(2)…​ X(n)-X(n-1)] *Xが行列の場合、diff(X)は行の差の行列を返します。[X(2:m、:)-X(1:m-1、:)]
18
  • diff(X,n)*

_diff_をn回再帰的に適用し、結果としてn番目の差を生じます。

19

diff(X,n,dim)

これは、スカラーdimで指定された次元に沿って計算されたn番目の差分関数です。 次数nが次元dimの長さ以上である場合、diffは空の配列を返します。

20

prod(A)

配列要素の積。 Aの配列要素の積を返します。

  • Aがベクトルの場合、prod(A)は要素の積を返します。
  • Aが空でない行列の場合、prod(A)はAの列をベクトルとして扱い、各列の積の行ベクトルを返します。
  • Aが空の0行0列の行列の場合、prod(A)は1を返します。 *Aが多次元配列の場合、prod(A)は最初の1でない次元に沿って機能し、製品の配列を返します。 この次元のサイズは1に減少しますが、他のすべての次元のサイズは同じままです。

prod関数は、入力Aが単一の場合、Bを計算して単一として返します。 他のすべての数値および論理データ型の場合、prodはBを計算してdoubleとして返します。

21
  • prod(A,dim)*

ディメンションdimに沿って製品を返します。 たとえば、Aが行列の場合、prod(A、2)は各行の積を含む列ベクトルです。

22

prod(_,datatype)

データ型で指定されたクラスで配列を乗算して返します。

23

sum(A)

  • 配列要素の合計。配列の異なる次元に沿って合計を返します。 Aが浮動小数点、つまりダブルまたはシングルである場合、Bはネイティブに累積され、Aと同じクラスにあり、BはAと同じクラスを持ちます。 Aが浮動小数点でない場合、Bはdoubleに累積され、Bはクラスdoubleを持ちます。
  • Aがベクトルの場合、sum(A)は要素の合計を返します。
  • Aが行列の場合、sum(A)はAの列をベクトルとして扱い、各列の合計の行ベクトルを返します。 *Aが多次元配列の場合、sum(A)は最初の非1次元の値をベクトルとして扱い、行ベクトルの配列を返します。
24
  • sum(A,dim)*

スカラー_dim_で指定された_A_の次元に沿って合計します。

25

sum(…​, 'double')

  • sum(…​、dim、 'double') *

Aがデータ型singleまたは整数データ型であっても、倍精度で加算を実行し、double型の回答を返します。 これは整数データ型のデフォルトです。

26
  • sum(…​, 'native')*
  • sum(…​、dim、 'native') *

Aのネイティブデータ型で追加を実行し、同じデータ型の回答を返します。 これは、singleおよびdoubleのデフォルトです。

27
  • ceil(A)*

正の無限大に向かって丸めます。 Aの要素をA以上の最も近い整数に丸めます。

28

fix(A)

ゼロに向かって丸める

29

floor(A)

負の無限大に向かって丸めます。 Aの要素をA以下の最も近い整数に丸めます。

30

idivide(a, b)

  • idivide(a、b、 'fix') *

丸めオプションを使用した整数除算。 a./bと同じですが、小数商がゼロに最も近い整数に丸められる点が異なります。

31
  • idivide(a, b, 'round')*

小数部の商は、最も近い整数に丸められます。

32

idivide(A, B, 'floor')

小数部の商は、負の無限大に向かって最も近い整数に丸められます。

33

idivide(A, B, 'ceil')

小数部の商は、無限大に最も近い整数に丸められます。

34

mod (X,Y)

除算後のモジュラス。 X-n。* Yを返します(n = floor(X./Y))。 Yが整数ではなく、商X./Yが整数の丸め誤差の範囲内にある場合、nはその整数です。 入力XとYは、同じサイズの実数配列、または実数スカラー(Y〜= 0が提供される)でなければなりません。

注意してください-

  • mod(X、0)はX
  • mod(X、X)は0 *X〜= YおよびY〜= 0のmod(X、Y)はYと同じ符号を持ちます
35
  • rem (X,Y)*

除算後の残り。 X-n。* Yを返します(n = fix(X./Y))。 Yが整数でなく、商X./Yが整数の丸め誤差の範囲内にある場合、nはその整数です。 入力XおよびYは、同じサイズの実数配列または実数スカラー(Y〜= 0が提供される)でなければなりません。

次のことに注意してください-

  • rem(X、0)はNaN
  • X〜= 0のrem(X、X)は0 *X〜= YおよびY〜= 0のrem(X、Y)は、Xと同じ符号を持ちます。
36
  • round(X)*

最も近い整数に丸めます。 Xの要素を最も近い整数に丸めます。 小数部が0.5の正の要素は、最も近い正の整数に切り上げられます。 -0.5の小数部を持つ負の要素は、最も近い負の整数に切り捨てられます。