0

我正在使用此代码来绘制单位阶跃函数

t1=-2:0.01:2;

if t1>=0
    y=1;
else if t1<0
    y=0;

   end

end

subplot(3,1,1)
plot(t1,y)`

但我没有得到想要的输出。它在每个点都为 y 绘制零。

4

1 回答 1

4

您的代码一次测试所有 t1 值并且与

if all(t1>=0)
    y=1;
else if all(t1<0)
    y=0;

   end

end

你想要的是:

t1=-2:0.01:2;
y = zeros(size(t1));
y(t1>=0) = 1;

subplot(3,1,1)
plot(t1,y)

另一种(效率较低的)方法是:

t1=-2:0.01:2;
for index=1:length(t1)
    if t1(index)>=0
        y(index)=1;
    else if t1(index)<0
            y(index)=0;
        end
    end
end

subplot(3,1,1)
plot(t1,y)

正如 P0W 所指出的,还有一个生成与您的类似的阶跃输出的 heaviside 函数(尽管在 0 时值为 0.5)。但是,仅当您安装了符号工具箱时,heaviside 功能才可用。

于 2013-09-30T19:48:39.997 回答