初学者Matlab函数只绘制零点

时间:2017-06-07 01:18:04

标签: matlab octave

我的一个Signals类中已被抛到深处。我正在努力学习Octave,以便我可以完成家里教授所要求的Matlab作业(我还没有在Matlab接受任何教育)。

我一直在尽可能多地阅读,但我似乎无法弄清楚为什么这个功能似乎只返回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));

1 个答案:

答案 0 :(得分:1)

问题出现是因为函数输入了一个向量并返回一个标量,因此绘图错误地绘制。

一个解决方案:

一种可能的解决方案是使用零()创建新向量,然后通过选择带有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));