【发布时间】:2013-04-07 12:24:12
【问题描述】:
我很难绘制阶跃函数。涉及的函数是Haar缩放函数,定义为:
ø(x) = 1 if 0 ≤ x < 1
ø(x) = 0 otherwise
我应该绘制以下函数:
f(x) = 2ø(4x) + 2ø(4x - 1) + ø(4x - 2) - ø(4x - 3)
这应该给我一个图,其中 f = 2 在区间 0 ≤ x
我尝试了以下代码:
f = @(t) 2*(4*t > 0) + 2*(4*t > 1) + (4*t > 2) - (4*t > 3);
t = linspace(-2,2,100);
stairs(t,f(t))
但是,这并没有给我一个准确的图表。那么我在这里做错了什么?任何帮助将不胜感激!
【问题讨论】:
-
“不准确的图表”是什么意思?在什么意义上?
-
该图给出了 f = 2 on 0
-
您对“阶梯函数”的定义与阶梯函数的定义存在差异。通常,对于 x > 0,阶跃函数为 f(x) = 1,否则为零。您的定义为 x>1 添加了“设置为零”。您的
f(t)符合直观定义,而不是您的定义。 -
好的,谢谢。你有什么想法我怎么能做到这一点。我试过: f = @(t) 2*(0
-
您不能在 Matlab 中指定像
0 < 4*t < 1这样的不等式范围,因为它将首先评估0<4*t,然后将答案(0 或 1)应用于< 1部分。您需要将其写为:0 < 4*t & 4*t < 1.