最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

关于MATLAB中分段函数的画法

来源:动视网 责编:小OO 时间:2025-09-29 23:30:02
文档

关于MATLAB中分段函数的画法

关于MATLAB中分段函数的画法最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.我把这些分段函数分为两类:一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.例1.y={0,(x=0)};在x>-10&x=1&x4)};在区间(-1010)里面的图形.这是它的图形.那么大家想一下应该可以用几种方法解决呢?下面我介绍给大家的一种最古老的,最笨而
推荐度:
导读关于MATLAB中分段函数的画法最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.我把这些分段函数分为两类:一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.例1.y={0,(x=0)};在x>-10&x=1&x4)};在区间(-1010)里面的图形.这是它的图形.那么大家想一下应该可以用几种方法解决呢?下面我介绍给大家的一种最古老的,最笨而
关于MATLAB中分段函数的画法

    最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.

       我把这些分段函数分为两类:

       一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.

       例 1.y={0,(x<0);1,(x>=0)};在x>-10&x<10区间内的图形

             

             代码如下 :   

         x=-10:0.01:10;

         y=ones(size(x));

y(x<=0)=0;

         plot(x,y);

         axis([-10 10 -0.5 1.5]);

        这样的处理方法就是对于x是变量而Y为常量的而直接定义常数矩阵,再通过判断进行修改,只适合于Y为常量的基础上.

________________________________________________华丽分割线_______________________________________________

       二.第二种是y=f(x),y是关于x的一个变量.需要将x进行赋值的分段函数.这种处理方法比较多.

        这里引用一段经典matlab分段画图的例子给大家(代码为蓝色区域):

       例 2: x=-3:0.01:3; 

               y1=zeros(size(x)); 

               y2=zeros(size(x)); 

               y3=zeros(size(x)); 

               N=length(x); 

               for k=1:N 

if x(k)<-1&x(k)>=-3;

               y1(k)=(-x(k).^2-4*x(k)-3)/2; 

elseif x(k)>=-1&x(k)<1 ;

               y2(k)=-x(k).^2+1; 

else x(k)<=3&x(k)>=1 ;

               y3(k)=(-x(k).^2+4*x(k)-3)/2; 

               end 

               end 

               y=y1+y2+y3; 

               plot(x,y)

           

            这里运用的是将Y的值设置成三个与x的数量相等的空变量.然后分别依次讲X的值通过f(x)转换为Y然后画出图形并将三个图形进行组合.

       

______________________________________________________华丽分割线_______________________________________________

       是否除了这个方法,还有其他的解决方案呢?是有的.       

       这里将代码奉上,这个我告诉大家的第三个方法.

       x1=-3:0.01:-1;

       x2=-1:0.01:1;

       x3=1:0.01:3;

       y1=(-x1.^2-4*x1-3)/2;

       y2=-(x2).^2+1;

       y3=(-x3.^2+4*x3-3)/2;

       x=[x1,x2,x3];

       y=[y1,y2,y3];

       plot(x,y)

       axis([-3 3 0 1]);

       有人觉得,第一种类型应该包含在第二种类型里面.便想用这个方法解决第一个问题,却发现出错:还是用第一个例子吧.

       x1=-10:0.01:0;

       x2=0:0.01:10;

       y1=0;

       y2=1; 

       x=[x1,x2];

       y=[y1,y2];  

       plot(x,y);

       axis([-10 10 -0.5 1.5]);

       如果这样输入的话,看起来是没错,但是编译的时候通不过,有这样的提示:Vectors must be the same lengths.提示你的X,Y的长度不同,不能画图.

       怎样才能让X,Y的长度相同呢.这个有一个解决方法.使得这个方法通用性更强.就是+X*0;

       代码如下:

       x1=-10:0.01:0;

       x2=0:0.01:10;

       y1=0*x1;

       y2=1+0*x2; 

       x=[x1,x2];

       y=[y1,y2];  

       plot(x,y);

       axis([-10 10 -0.5 1.5]);

       可以达到图1相同的效果.

       不过这个方法有一个缺点就是无法设定图形的折点.比如例 2,你无法设定x=1和x=-1时,y的值.如果不是0.那么就有错误.

__________________________________________________华丽分割线____________________________________________________

       现在说的最开始我讲的的那题.我讲它作为第三个例子来讲.是这样一题:y={x,(x>1);x^2,(x>=1&x<=4);pow2(x),(x>4)};在区间(-10 10)里面的图形.

       

                  

       这是它的图形.那么大家想一下应该可以用几种方法解决呢?

       下面我介绍给大家的一种最古老的,最笨而实在的方法.通过IF函数判断然后算出Y的值进行画图:

       代码如下:

       i=1;

       for x=-10:0.05:10

if x<1

       y(i)=x;

elseif x>=1&x<4

       y(i)=x.^2;

else x>=4

       y(i)=pow2(x);

       end

       i=i+1;

       end

       x=-10:0.05:10;

       plot(x,y)

       这样通过计算出Y的值,然后再画出图形是可行的.

       继续,另一种方法:

fun=@(x)x.*(x<1)+(x.^2).*(x>=1&x<4)+(pow2(x)).*(x>=0&x       %计算函数值

       x=-10:10;

       y=fun(x);

       %绘制函数图形

       fplot(fun,[-10 10]);

       axis([-10 10 -10 20]);

       大家还想到什么方法?这里我用我上面提到的第三种方法来试试.

       x1=-10:0.01:1;

       x2=1:0.01:4;

  x3=4:0.01:10;

  y1=x1;

  y2=(x2).^2;

  y3=pow2(x3);

  x=[x1,x2,x3];

  y=[y1,y2,y3];

  plot(x,y)

  axis([-10 10 -10 20]);

      果然OK,那么到现在,大家学会了几种方式去画分段函数呢?

      *另外还有一种方法,是用stepwise函数直接计算分段函数,不过这个方法我查不到怎么用,如果大家有兴趣,可以自己去查下资料.

文档

关于MATLAB中分段函数的画法

关于MATLAB中分段函数的画法最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.我把这些分段函数分为两类:一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.例1.y={0,(x=0)};在x>-10&x=1&x4)};在区间(-1010)里面的图形.这是它的图形.那么大家想一下应该可以用几种方法解决呢?下面我介绍给大家的一种最古老的,最笨而
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top