kroneckerDelta
クロネッカー デルタ関数
説明
例
2 つのシンボリック変数の比較
メモ
kroneckerDelta の入力が数値の場合、代わりに関数 eq を使用してください。
シンボリック変数 m はシンボリック変数 n と等しいとして設定し、kroneckerDelta を使用してその等式をテストします。
syms m n m = n; kroneckerDelta(m,n)
ans = 1
kroneckerDelta は 1 を返し、入力が等しいことを示します。
シンボリック変数 p と q を比較します。
syms p q kroneckerDelta(p,q)
ans = kroneckerDelta(p - q, 0)
kroneckerDelta は p == q であるかどうかを決定できず、決定不可能な入力と共に関数呼び出しを返します。kroneckerDelta(p, q) は kroneckerDelta(p - q, 0) に等しいことに注意してください。
決定不可能な入力に対する論理結果を強制するには、isAlways を使用します。関数 isAlways は警告を発し、決定不可能な入力に対して logical 0 (false) を返します。Unknown オプションを false に設定して警告を抑制します。
isAlways(kroneckerDelta(p, q), 'Unknown', 'false')
ans = logical 0
シンボリック変数とゼロの比較
シンボリック変数 m を 0 に設定し、m と 0 の等式をテストします。関数 kroneckerDelta は double 型の数値入力を受け入れないためエラーが発生します。
m = 0; kroneckerDelta(m)
Undefined function 'kroneckerDelta' for input arguments of type 'double'.
0 を m に代入する前に、sym を使用してシンボリック オブジェクトに変換します。これは、kroneckerDelta はシンボリック入力しか受け入れないためです。
syms m m = sym(0); kroneckerDelta(m)
ans = 1
kroneckerDelta は 1 を返して m が 0 に等しいことを示します。kroneckerDelta(m) は kroneckerDelta(m, 0) に等しいことに注意してください。
数値のベクトルをシンボリック変数と比較
数値のベクトル [1 2 3 4] をシンボリック変数 m と比較します。m を 3 に設定します。
V = 1:4 syms m m = sym(3) sol = kroneckerDelta(V,m)
V =
1 2 3 4
m =
3
sol =
[ 0, 0, 1, 0]kroneckerDelta は V の要素ごとに働き、V と同じサイズのベクトル sol を返します。sol の 3 番目の要素 1 は V の 3 番目の要素が m に等しいことを示しています。
2 つの行列の比較
行列 A と B を比較します。
行列 A と B を宣言します。
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 を使用して A と B を比較します。
sol = kroneckerDelta(A,B)
sol = [ 1, 0, 1] [ 0, 1, 0]
kroneckerDelta は A と B の要素ごとに働き、A および B と同じサイズの行列 sol を返します。sol の要素のうち 1 であるものは、対応する A と B の要素が等しいことを示しています。sol の要素のうち 0 であるものは、対応する A と B の要素が等しくないことを示しています。
他の関数への入力における kroneckerDelta の使用
kroneckerDelta は iztrans の出力に現れます。
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)

入力引数
詳細
バージョン履歴
R2014b で導入