我的一个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));
答案 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));