Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

kroneckerDelta

クロネッカー デルタ関数

説明

kroneckerDelta(m) は、m == 0 の場合は 1 を返し、m ~= 0 の場合は 0 を返します。

kroneckerDelta(m,n) は、m == n の場合は 1 を返し、m ~= n の場合は 0 を返します。

2 つのシンボリック変数の比較

メモ

kroneckerDelta の入力が数値の場合、代わりに関数 eq を使用してください。

シンボリック変数 m はシンボリック変数 n と等しいとして設定し、kroneckerDelta を使用してその等式をテストします。

syms m n
m = n;
kroneckerDelta(m,n)
ans =
1

kroneckerDelta1 を返し、入力が等しいことを示します。

シンボリック変数 pq を比較します。

syms p q
kroneckerDelta(p,q)
ans =
kroneckerDelta(p - q, 0)

kroneckerDeltap == q であるかどうかを決定できず、決定不可能な入力と共に関数呼び出しを返します。kroneckerDelta(p, q)kroneckerDelta(p - q, 0) に等しいことに注意してください。

決定不可能な入力に対する論理結果を強制するには、isAlways を使用します。関数 isAlways は警告を発し、決定不可能な入力に対して logical 0 (false) を返します。Unknown オプションを false に設定して警告を抑制します。

isAlways(kroneckerDelta(p, q), 'Unknown', 'false')
ans =
  logical
   0

シンボリック変数とゼロの比較

シンボリック変数 m0 に設定し、m0 の等式をテストします。関数 kroneckerDeltadouble 型の数値入力を受け入れないためエラーが発生します。

m = 0;
kroneckerDelta(m)
Undefined function 'kroneckerDelta' for input arguments of type 'double'.

0m に代入する前に、sym を使用してシンボリック オブジェクトに変換します。これは、kroneckerDelta はシンボリック入力しか受け入れないためです。

syms m
m = sym(0);
kroneckerDelta(m)
ans =
   1

kroneckerDelta1 を返して m0 に等しいことを示します。kroneckerDelta(m) は、kroneckerDelta(m, 0) に等しいことに注意してください。

数値のベクトルをシンボリック変数と比較

数値のベクトル [1 2 3 4] をシンボリック変数 m と比較します。m3 に設定します。

V = 1:4
syms m
m = sym(3)
sol = kroneckerDelta(V,m)
V =
     1     2     3     4
m =
3
sol =
[ 0, 0, 1, 0]

kroneckerDeltaV の要素ごとに働き、V と同じサイズのベクトル sol を返します。sol の 3 番目の要素 1V の 3 番目の要素が m に等しいことを示しています。

2 つの行列の比較

行列 AB を比較します。

行列 AB を宣言します。

syms m
A = [m m+1 m+2;m-2 m-1 m]
B = [m m+3 m+2;m-1 m-1 m+1]
A =
[     m, m + 1, m + 2]
[ m - 2, m - 1,     m]
B =
[     m, m + 3, m + 2]
[ m - 1, m - 1, m + 1]

kroneckerDelta を使用して AB を比較します。

sol = kroneckerDelta(A,B)
sol =
[ 1, 0, 1]
[ 0, 1, 0]

kroneckerDeltaAB の要素ごとに働き、A および B と同じサイズの行列 sol を返します。sol の要素のうち 1 であるものは、対応する AB の要素が等しいことを示しています。sol の要素のうち 0 であるものは、対応する AB の要素が等しくないことを示しています。

他の関数への入力における kroneckerDelta の使用

kroneckerDeltaiztrans の出力に現れます。

syms z n
sol = iztrans(1/(z-1), z, n)
sol =
1 - kroneckerDelta(n, 0)

この出力を ztrans の入力に使用し、最初の入力式を返します。

ztrans(sol, n, z)
ans =
z/(z - 1) - 1

クロネッカー デルタ入力への応答をフィルター処理

入力がクロネッカー デルタ関数の場合に filter を使用してフィルターの応答を求めます。kroneckerDelta はシンボリック入力しか受けいれないので sym を使用して k をシンボリック ベクトルに変換し、double を使用して double に変換し直します。単純化するため任意のフィルター係数 a および b を指定します。

b = [0 1 1];
a = [1 -0.5 0.3];
k = -20:20;
x = double(kroneckerDelta(sym(k)));
y = filter(b,a,x);
plot(k,y)

Figure contains an axes object. The axes object contains an object of type line.

入力引数

すべて折りたたむ

入力。数値、ベクトル、行列、多次元配列、あるいはシンボリック数、ベクトル、行列、関数または多次元配列として指定します。入力 m または n のうち少なくとも 1 つはシンボリックでなければなりません。

入力。数値、ベクトル、行列、多次元配列、あるいはシンボリック数、ベクトル、行列、関数または多次元配列として指定します。入力 m または n のうち少なくとも 1 つはシンボリックでなければなりません。

詳細

すべて折りたたむ

クロネッカー デルタ関数

クロネッカー デルタ関数は次のように定義されます。

δ(m,n)={0if mn1if m=n

ヒント

  • m または nNaN の場合、関数 kroneckerDeltaNaN を返します。

バージョン履歴

R2014b で導入

参考

|