我可以not
在Matlab中用作离散dirac delta函数吗?
离散dirac delta函数的定义是,对于参数0,它返回1,否则它返回0.但这正是not
函数在Matlab中的作用!
如果我使用not
而不是编写自己的dirac delta函数,你会看到任何问题吗?我知道Matlab有一个dirac
函数,但是那个是连续版本 - 它返回0的无穷大而不是1.
我认为没关系,但请注意输出not
是一个logical
s 数组:
例:
a = [0, 1, pi]
b = not(a)
c = double(b)
whos
Run Code Online (Sandbox Code Playgroud)
输出:
a =
0.00000 1.00000 3.14159
b =
1 0 0
c =
1 0 0
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
a 1x3 24 double
b 1x3 3 logical
c 1x3 24 double
Total is 9 elements using 51 bytes
Run Code Online (Sandbox Code Playgroud)
因此,如果输入为double
s,我将以这种方式定义离散Dirac delta函数:
ddirac = @(x) double(not(x));
Run Code Online (Sandbox Code Playgroud)
要么
function y = ddelta(x)
y = double(not(x));
Run Code Online (Sandbox Code Playgroud)
为清楚起见,我会定义
diracdelta = @not;
Run Code Online (Sandbox Code Playgroud)
在你的代码中明确表示你要使用dirac delta函数,而不是做出逻辑否定.当您在六个月后重新访问代码时,您会感谢我的清晰度.