2017-11-11 346 views
1

我想用intintegral函数matlab来计算delta函数的积分,我不能用int函数因为输入,我给它不是表达式。同时,integral函数返回一个值,它是不是下面的图片是什么,我想产生它必须与增量函数的函数 enter image description here积分单位阶跃函数或三角函数在matlab中

这是我的代码,返回MA错误:

t=-5:0.01:5; 
ydelta=u(t+1)-u(t); 
h=int(u(t+1)-u(t)); 
plot(t,h) 

这是u功能:

function y=u(t) 
y=(t>=0); 
end 

,这是一个错误: 未定义的函数“INT”为类型“双”的输入参数。 但这并不重要,因为问题是int函数的输入必须是表达式。

我该如何解决这个问题?

+0

问题有点令人困惑:单位阶跃函数与“delta函数”不一样,也不是方波脉冲u(t + 1)-u(t)。 (Delta函数并不是一个真正的函数,除了离散时间外,您可以用数值方式进行评估)。是不是有一个原因,你不是“使用for循环”手动“来集成它? – NickJH

回答

0

对于集成,您必须使用integral函数。 欲了解更多信息:https://it.mathworks.com/help/matlab/ref/integral.html

+0

'积分'函数返回一个值,但我必须绘制结果,所以我不能使用'积分'函数。 – mkafiyan

+0

也是输入必须是一个函数,但我的输入是一个向量。 – mkafiyan

+0

如果你想绘制结果(我想你是指整体面积),你可以使用'面积'图形功能。对于第二个问题,您只需将曲线代码转换为函数并将句柄传递给“整数”函数即可。 –