liertwx 发表于 2009-6-17 09:26

请问如何在MATLAB中画出分段函数的图型?

请问如何在MATLAB中画出分段函数的图型? 我是新手,请大家帮忙指点一下。函数如下:
1<x<2,f(x)=1;
3<x<4,f(x)=2;
其它f(x)=0.(0<x<4),每一段与另一段线不用连线连接。
请高手帮忙画出这个函数的图。多谢了!

wanra 发表于 2009-6-17 15:40

我想你的函数很简单,可以用三次画图函数,将三段分别在一张图上画出来,就可以啦

VibrationMaster 发表于 2009-6-17 19:47

plot(,)

ChaChing 发表于 2009-6-17 21:47

怕有人看不出, 这样更清楚
plot(,,'o-','LineWidth',2)

liertwx 发表于 2009-6-18 09:15

非常感谢大家的帮忙!本人比较愚钝,还想请教!这是用向量来画的图形吧,请问里面的”NaN“是什么意思?如果这个函数是无穷段这样延伸下去的,应该如何画呢?函数值也是一段涨一个数值。

friendchj 发表于 2009-6-18 11:27

第一次知道这个用法,呵呵。查了下help
plot(X1,Y1,X2,Y2,...) plots the vectors Y1 against X1, Y2 against X2, and so on. Vector pairs must be the same length and the list must consist of an even number of vectors.
Plot commands can include NaN and inf values. When NaNs or infs are encountered, Simulink software stops drawing, then begins redrawing at the next numbers that are not NaN or inf.

wanra 发表于 2009-6-18 15:55

恩,好方法,学习了

VibrationMaster 发表于 2009-6-18 19:24

NS=3; %你需要的段数
XV=;YV=
for i=1:NS
XV=;
YV=;
end
plot(XV,YV);

beyondhxf 发表于 2009-6-20 09:05

回复 楼主 liertwx 的帖子

可以使用hold on

liertwx 发表于 2009-6-20 09:08

非常感谢各位的帮忙,是个很好的方法!
如果函数是无穷段,还能用这个方法么?比如函数如下:
1<x<2,f(x)=1;
3<x<4,f(x)=2;
5<x<6,f(x)=3;7<x<8,f(x)=4;
2*i-1<x<2*i,f(x)=i;
其它f(x)=0.(0<x),

[ 本帖最后由 friendchj 于 2009-6-20 09:32 编辑 ]

friendchj 发表于 2009-6-20 09:36

如果函数是无穷段
即使为无穷段,也能画有限段

2*i-1<x<2*i,f(x)=i;
其它f(x)=0.(0<x),
其它f(x)=0,条件应该是x<0吧

ChaChing 发表于 2009-6-20 10:39

我想没有任何软体可以画无穷段的! 都是仅画出有限段
其它f(x)=0.(0<x), 应该是f(x)=0.(other x)

liertwx 发表于 2009-6-22 15:03

(0<x)是指这个函数的定义域,不好意思,没有说清楚。如果这个函数段非常多,比如定义域为(0<x<200),这时候是不是要用hold on?具体的程序该怎么写?还请高手指点!多谢!
页: [1]
查看完整版本: 请问如何在MATLAB中画出分段函数的图型?