我是matlab的新手。我不明白如何导出dirac delta函数然后使用符号工具箱移动它。
syms t
x = dirac(t)
为什么我不能使用ezplot(x,[-10,10])
看到dirac delta函数?
答案 0 :(得分:3)
正如其他人所说,Dirac delta function不是真正的功能,而是generalized function。 dirac
的帮助表明了这一点:
dirac (X)在严格意义上不是一个功能,而是一个
用int分布(dirac(x-a)* f(x), - inf,inf)= f(a)和
diff(重质(x),x)= dirac(x)。
严格地说,Matlab不可能以正常方式绘制狄拉克三角函数,因为它的一部分延伸到无穷大。但是,如果您想要可视化,则有许多变通方法。一个简单的方法是使用stem
绘图函数和>
运算符将一个Inf
值转换为有限值。这会产生单位脉冲函数(或Kronecker delta):
t = -10:10;
x = dirac(t) > 0;
stem(t,x)
如果t
和x
已作为符号变量/表达式而非数字变量/表达式存在,则可以使用subs
:
syms t
x = dirac(t);
t2 = -10:10;
x2 = subs(x,t,t2)>0;
stem(t2, x2)
如果你想要看起来不同的东西,你可以编写自己的情节例程。使用ezplot
不太可能,因为它没有提供那么多的控制。
答案 1 :(得分:1)
首先,我之前没有见过ezplot
;我不得不读它。对于像x
这样功能的东西,它很方便,但你仍然必须意识到它正是给你的承诺:一个情节。
如果您有绘制狄拉克三角函数的工作,您将如何正确地进行?你不能。你必须找到一个注释你的情节的约定,其中包含你的情节中有一个孤立的无限点的信息。
用线图绘制某些东西因此不适用于除平滑函数之外的任何东西(这是一个明确定义的术语)。狄拉克三角洲绝对不是一流的功能。您通常会使用垂直线或其他东西来表示功能不是0的点。