Кронекерова функция дельты
kroneckerDelta(m)
kroneckerDelta(m,n)
Для 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
выдает предупреждение и возвращает логический 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'.
Используйте sym
, чтобы преобразовать 0
в символьный объект прежде, чем присвоить его m
. Это вызвано тем, что 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
, поэлементный, чтобы возвратить вектор, sol
, который одного размера как V
. Третьим элементом sol
является 1
, указывающий, что третий элемент V
равняется m
.
Сравните матрицы 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]
Сравните A
и B
с помощью kroneckerDelta
.
sol = kroneckerDelta(A,B)
sol = [ 1, 0, 1] [ 0, 1, 0]
kroneckerDelta
действует на A
и B
, поэлементный, чтобы возвратить матричный sol
, который одного размера как A
и B
. Элементы sol
, которые являются 1
, указывают, что соответствующие элементы A
и B
равны. Элементы sol
, которые являются 0
, указывают, что соответствующие элементы A
и B
не равны.
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
, чтобы найти ответ фильтра, когда вход будет функцией Delta Кронекера. Преобразуйте k
в символьный вектор с помощью sym
, потому что kroneckerDelta
только принимает символьные входные параметры, и преобразуйте его назад, чтобы удвоить использование 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)