このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 で導入