繁体   English   中英

在 MATLAB 中绘制分段 function

[英]Plotting a piecewise function in MATLAB

我一直在尝试 plot 分段 function:

y(t)=a*sin(2*pi *f *t) 对于 0 < t <= 1/(2f)

y(t)=0 对于 1/(2f) < t < 1/f

范围从 t=0 到 t=3。

任何人都可以在不使用“分段”命令的情况下帮助我 plot 而是使用 for 循环和 if 语句创建 function 吗?

在 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)

创建这种分段 function 的另一种方法是创建专用 function 或匿名 function 来实时计算。 例如

y=@(t,f,a) (t<=1/(2*f) & t>=0).*sin(2*pi*f*t)*a;
plot(t,y(t,f,a))

我正在尝试这样的事情:

function [速率] = y(a,f,t)
对于 t = (0:3)
如果 t <= (1 / (2 * f))
率 = a * sin(2 * pi * f * t);
别的
率 = 0;
结尾
结尾
结尾

然后调用: plot (t, y(a,f,t)) 到 plot 图表。 如果我错了,你能纠正我吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM