标题:matlab菜鸟提问,画分段函数的曲线,请大家帮助,急
只看楼主
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 
以下是引用beyond8820在2006-6-12 16:30:17的发言:
再问:

把两段曲线画在一个图框内,第一个曲线,根据上面的for语句可以画出来,但是第二个曲线,x坐标的范围和第一个曲线相同。只是当x在不同范围的时候,y的值不同。例如
for x=0:0.1:10000
if x>0&x<s
y=c-t
elseif x>s&x<s+x1
y=tan(angle1)*c
end
end

这个曲线又怎样和上述 所说的第一个曲线在一个坐标系内画出来呢???

for x=0:0.1:10000
if x>0&x<s
y=c-t;
plot(x,y);
elseif x>s&x<s+x1
y=tan(angle1)*c;
plot(x,y);
end
end
就可以了


OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2006-06-12 17:10
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
不知道引用怎么用的。不过
for x=0:0.1:10000
if x>0&x<s
y=c-t;
plot(x,y);
elseif x>s&x<s+x1
y=tan(angle1)*c;
plot(x,y);
end
end
这样不行呀。因为是两条曲线。s有可能大于x1。两条曲线,第一条的x是在0到x1之间变化,第二条的x是在0到s,s到s+x1的区间变化。这两条曲线,每个阶段的曲线表示方法是不一样的。 不能简单用上述过程来描述
2006-06-12 17:14
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 
plot(y)不行,plot(x,y)是可以的你确定用的plot(x,y)还不行吗?
还有前面的hold on你没丢吧

[此贴子已经被作者于2006-6-12 17:20:19编辑过]


OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2006-06-12 17:17
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
看了一下书,plot(x,y,x1,y1)这个是可以在一个坐标系里画两条曲线的。不过对于x和x1可以分段取值的这个,在程序里不知道怎么表示比较好。
2006-06-12 17:24
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
实际上就是要求两个分段函数曲线在一个坐标系里画出的问题。

2006-06-12 17:28
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
不会做。。。。。。。。。。。matlab不是两天就能看会的。。。。。。。
2006-06-12 18:00
zhangenter
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:390
专家分:0
注 册:2006-6-5
得分:0 
y(10000)=0;
for x=1:x1
y(x)=tan(angle1)*x;
end
for x=x1:x2
y(x)=tan(angle1)*x1;
end
plot(y);hold on;
…………
…………
…………
for x=1:s
y(x)=c-t;
end
for x=s:s+x1
y(x)=tan(angle1)*c;
end
plot(y)
这样画不会出问题的

OldHandle = findobj( \'Name\', \'悲伤\' ) ;if ~isempty(OldHandle),delete(OldHandle) ;end for Time = \'现在\':\'每一天\':\'永远\',set( gco, \'心情\', \'快乐\');end % 这段代码为你天天快乐而存在
2006-06-12 18:47
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
试试看先:)
2006-06-13 08:51
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
照葫芦画瓢。现在没太多时间了。我想了一下,干脆分开画两条曲线

%坯料曲线
for x=0:0.1:100;
if(0<x&x<x1)
y=tan(angle1*pi/180)*x;
plot(x,y,'m');hold on
elseif(x1<x&x<x2)
y=tan(angle2*pi/180)*x1;
plot(x,y,'m');hold on
end
end

%模具曲线
for m=0:0.1:100;
if(0<m&m<s)
y=c-t;
plot(m,y,'b');hold on
elseif(s<m&m<x1+s)
y=c+tan(angle2*pi/180)*(m-s)-t;
plot(m,y,'b');hold on
end
end

可以直接画出两个分段曲线
2006-06-13 09:50
beyond8820
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-6-12
得分:0 
暂时没有问题了。多谢你:)
2006-06-13 10:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-71575-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.164515 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved