我一直在尝试绘制一个分段函数:
y(t(=a*sin(2*pi*f*t(,对于0<t<=1/(2f(
对于1/(2f(<t<1/f
范围从t=0到t=3。
有人能帮我在不使用"分段"命令的情况下绘制这个图吗?相反,可以用for循环和if语句创建一个函数吗?
在matlab中,通常通过计算离散网格中的x/y值来绘制。
f=2;
a=1;
t=0:0.01:3;
y=zeros(size(t));
y(t<=1/(2*f))=a*sin(2*pi*f*t(t<=1/2/f));
plot(t,y)
创建这种分段函数的另一种方法是创建一个专用函数或匿名函数来实时计算。例如
y=@(t,f,a) (t<=1/(2*f) & t>=0).*sin(2*pi*f*t)*a;
plot(t,y(t,f,a))
我试过这样的东西:
函数[rate]=y(a,f,t(
对于t=(0:3(
if t<=(1/(2*f((
rate=a*sin(2*pi*f*t(
其他
费率=0
end
end
end
然后调用:plot(t,y(a,f,t((来绘制图。如果我错了,你能纠正我吗?