Matlab中怎么在三维图像中添加二维曲线

有时候用matlab画三维图像时候需要在里面插入一些二维曲线,来显示一些对比情况。

方法就是图像的叠加,也就是 hold on 语句,还有一点, 画三维、二维曲线,用 plot3 语句

至于说怎么画三维面,老多大佬都有,随便找吧。这里就跟大家分享两点:

1、三维坐标画二维、三维曲线。

2、三维图像和二维曲线同时表示。

1、三维图像里面生成多条曲线的最简单操作:

其中有 y 坐标不变,也就是 z = f (x) 的曲线,有 x、y 都变的,也就是 z = f (x,y) 曲线。

实际上因为三维图像在画的过程中要么点对点,要么生成数组,点对点就在下面程序里面,数组在后面。

点对点因为 x 有51个点,生成的 y 也有51个点,用矩阵阵也行,用 y = g(x) 也行。

    如果是 y 不变的情况,生成个1行51列的矩阵,z=f(x)时候需要y等于几,就把这个矩阵里面的数全弄成那个。
    如果z = f (x,y)时候,需要把 y 和 x 的关系式列出来。

clear 
clc      %基础设置
 
%% 0

简单来说就是画线段然后叠加,注意一点就行,二维曲线用 plot3 ,它跟二维的使用方法一样的,就是( x , y )变成了 ( x , y , z ) 其它的,像设置线段类型,设置线段颜色完全一样。图像如下:

 2、三维图像和二维曲线同时表示:

说破天,还是 hold on 叠加,但是三维图像画的方式就多了,plot3(x,y,z))、meshc(x,y,z) 、meshz(x,y,z) 、surfc(x,y,z) 愿意用哪个用哪个。

  

  clear
    clc      %基础设置
     
    t=0:.01:1;  %三维曲面
    [y,x]=meshgrid(t);%形成格点矩阵
    z3=2*(-(y.*y)-2*(x.*x)-y+2*x+2*y.*x);
    surf(y,x,z3);
    hold on
     
    %% 0

————————————————
版权声明:本文为CSDN博主「井方学徒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_57719329/article/details/125053411

你可能感兴趣的:(Matlab,matlab,开发语言)