我想从等式中计算函数y(t)
:
y(t) = -3t^2+5, t>=0
y(t) = 3t^2+5, t<0
for -9 <= t <= with the step-size 0.5
我想用MATLAB绘制它。我以两种方式处理这个问题:
t=0:0.5:9
y=-3*t^2+5
t1=-0.00000000001:0.5:-9
y1=3*t^2+5
plot(t,y,t1,y1)
t=-9:0.5:9
if(t>=0)
y=-3*(t.^2)+5
else
y=3.*(t.^2)+5
end
plot(t,y)
我的问题是上面两种方式似乎没有给出相同的答案......哪一个是正确答案?
答案 0 :(得分:6)
您可以使用sign
函数更轻松地执行此特定示例:
t = -9:0.5:9;
y = -sign(t)*3.*t.^2 + 5;
plot(t,y);
答案 1 :(得分:1)
在您第一次尝试时,您的t1定义应为:
t1 = 0:-0.5:-9;
注意增量上的减号。
使用“循环”,你似乎遗漏了实际的循环部分。尝试像
这样的东西t = -9:0.5:9;
for idx = 1:length(t)
if t(idx) <= 0
y(idx) = -3*(t(idx).^2)+5
等
答案 2 :(得分:1)
这是一个更惯用的解决方案,避免了SIGN的情况,这不是唯一的区别。
t = -9:0.5:9
y = -3*t.^2+5
y(t<0) = 3*t(t<0).^2+5
plot(t, y)