初学者 Matlab 函数只绘制零

Beginner Matlab function only plotting zero

我的一个 Signals 类 让我陷入了深渊。我正在努力学习 Octave,这样我就可以在家里完成教授要求的 Matlab 作业(我还没有接受过任何 Matlab 教育)。

我已经尽可能多地阅读了,但我似乎无法弄清楚为什么这个函数似乎只有 return 0。我想我缺少一些基本的东西,但我不知道是什么。

t = [-1:0.1:5];

% (a): The Unit-step Function u(t)
function u = u (t)
    if(t >= 0)
        u = 1;
    else
        u = 0;
    end
end

plot(t, u(t));

问题出现是因为函数输入的是向量,returns是标量,所以plot画错了。

一种解法:

一个可能的解决方案是用零创建新向量 (),然后通过使用 if 选择输出来使用 for 进行迭代。

t = [-1:0.1:5];

% (a): The Unit-step Function u(t)
function u = u (t)
    u = zeros(size(t));
    for i=1:length(t)
        if(t(i) >= 0)
            u(i) = 1;
        else
            u(i) = 0;
        end
    end
end
plot(t, u(t));

第二种方案:

另一种解决方案是使用 matlab/octave 的属性来处理矢量运算。

t = [-1:0.1:5];

% (a): The Unit-step Function u(t)
function u = u (t)
    u = t>=0
end
plot(t, u(t));