声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1503|回复: 5

[绘图技巧] 分段函数绘图

[复制链接]
发表于 2007-5-12 13:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
:@) 请教各位高手,图中所示曲线(按类似规律变化延长)如何用matlab绘出。
Graph1.jpg
回复
分享到:

使用道具 举报

发表于 2007-5-12 13:20 | 显示全部楼层

回复 #1 hjydhu 的帖子

用最简单的plot循环就可以

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

评分

1

查看全部评分

发表于 2007-5-12 13:36 | 显示全部楼层



确定每段的左右端点,然后连接起来(可以使用 interp1 命令)
 楼主| 发表于 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
发表于 2007-5-12 14:17 | 显示全部楼层
原帖由 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 ...



请阅读 matlab 基础书,然后使用数组存储,最后再plot
 楼主| 发表于 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 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-12 00:33 , Processed in 0.058722 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表