Algorithm 在matlab中创建离散步长函数

Algorithm 在matlab中创建离散步长函数,algorithm,matlab,Algorithm,Matlab,我使用以下代码在MATLAB中创建一个标准的离散单位阶跃函数 >> n = -5 : 5; >> y = heaviside(n); >> stem(n,y); 然而,这张照片我尝试了很多不同的变体,并试图弄乱代码。但我无法创建函数。最好,我想把函数放在一个变量中,这样我可以做更复杂的信号处理。你知道我做错了什么吗?这是Matlab文档中对Heaveside阶跃函数的定义 heaviside(x)为x0返回值1,为x=0返回值1/2 注意此积分的结果,以确保

我使用以下代码在MATLAB中创建一个标准的离散单位阶跃函数

>> n = -5 : 5;
>> y = heaviside(n);
>> stem(n,y);

然而,这张照片我尝试了很多不同的变体,并试图弄乱代码。但我无法创建函数。最好,我想把函数放在一个变量中,这样我可以做更复杂的信号处理。你知道我做错了什么吗?

这是Matlab文档中对Heaveside阶跃函数的定义

heaviside(x)为x<0返回值0,为x>0返回值1,为x=0返回值1/2

注意此积分的结果,以确保实现正确:

syms x
int(exp(-x)*heaviside(x), x, -Inf, Inf)

请注意,
heaviside
是在符号库中定义的,它主要用于连续计算,如符号积分、傅里叶变换等。您也可以在离散设置中使用它,但
x=0
的行为是否符合您的需要取决于应用程序

创建step函数(无任何工具箱)的更简单方法有:


第一个在
x=0
处从0跳到1,第二个与
heaviside

hmm类似,因此我可以保存积分结果以用于更复杂的方程?当然,您也可以使用更复杂的符号表达式作为
heaviside
的参数,谢谢您的帮助!
step1 = @(x) x>=0;
step2 = @(x) (sign(x)+1)/2;

figure(1);clf;
stem(-5:5,step1(-5:5)); 
hold on;
stem(-5:5,step2(-5:5),'rx');