hjydhu 发表于 2007-5-12 13:10

分段函数绘图

:@) 请教各位高手,图中所示曲线(按类似规律变化延长)如何用matlab绘出。

咕噜噜 发表于 2007-5-12 13:20

回复 #1 hjydhu 的帖子

用最简单的plot循环就可以

[ 本帖最后由 咕噜噜 于 2007-5-12 13:31 编辑 ]

eight 发表于 2007-5-12 13:36

原帖由 hjydhu 于 2007-5-12 13:10 发表 http://forum.vibunion.com/forum/images/common/back.gif
:@) 请教各位高手,图中所示曲线(按类似规律变化延长)如何用matlab绘出。


确定每段的左右端点,然后连接起来(可以使用 interp1 命令)

hjydhu 发表于 2007-5-12 14:15

如果就几个延伸笨办法是可以,但多了就不行了。
准备用下面程序实现,初学编程,总不行,麻烦各位帮我看看怎么回事
for i=1:100
    T=(i-1)*3*0.05+2*0.05;
    for t=0:0.005:T
      if t>=0.15*(i-1)&t<=0.05*(3*i-1)
         y=0.2*(i-1);
      else t>0.05*(3*i-1)&t<=0.15*i
         y=4*t-4*0.05*2*i;
      end
    end
    plot(t,y),
    hold on
end

eight 发表于 2007-5-12 14:17

原帖由 hjydhu 于 2007-5-12 14:15 发表 http://forum.vibunion.com/forum/images/common/back.gif
如果就几个延伸笨办法是可以,但多了就不行了。
准备用下面程序实现,初学编程,总不行,麻烦各位帮我看看怎么回事
for i=1:100
    T=(i-1)*3*0.05+2*0.05;
    for t=0:0.005:T
      if t>=0.15*(i-1 ...


请阅读 matlab 基础书,然后使用数组存储,最后再plot

hjydhu 发表于 2007-5-12 14:24

麻烦帮我修改一下,看了很多天都没找到解决办法

for i=1:100
    T=(i-1)*3*0.05+2*0.05;
    for t=0:0.005:T
      if t>=0.15*(i-1)&t<=0.05*(3*i-1)
         y=0.2*(i-1);
      else t>0.05*(3*i-1)&t<=0.15*i
         y=20*0.2*(t-2*i*0.05);
      end
    end
    plot(t,y),
    hold on
end

[ 本帖最后由 hjydhu 于 2007-5-12 14:29 编辑 ]
页: [1]
查看完整版本: 分段函数绘图