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<x<0.5
x = 0:0.01:0.5;       %设置坐标范围
y = zeros(1,51);
z1 = 4*x-4*x.^2;      %第一条曲线
plot3(x,y,z1,'b')
hold on
 
x = 0:0.01:0.5;
y = x;
z2=2*x.*(2-3*x);      %第二条曲线分段
plot3(x,y,z2,'r')
hold on
 
%% 0.5<x<1
x = 0.5:0.01:1;
y = zeros(1,51);
z1 = 4*x-4*x.^2;       %第一条曲线
plot3(x,y,z1,'b')
hold on
 
x = 0.5:0.01:1;
y = 1-x;
z2=2*(1-x).*(3*x-1);   %第二条曲线分段
plot3(x,y,z2,'r')
hold on
 
axis([0 1 0 1 0 1]);   %设置范围[xmax xmin ymax ymin zmax zmin]
grid on        %生成网格
 
xlabel('x');   % x轴名称
ylabel('y');   % y轴名称
zlabel('z');   % z轴名称

简单来说就是画线段然后叠加,注意一点就行,二维曲线用 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<x<0.5
    x = 0:0.01:0.5;       %设置坐标范围
    y = zeros(1,51);
    z1 = 4*x-4*x.^2;      %第一条曲线
    plot3(x,y,z1,'b')
    hold on
     
    x = 0:0.01:0.5;
    y = x;
    z2=2*x.*(2-3*x);      %第二条曲线分段
    plot3(x,y,z2,'r')
    hold on
     
    %% 0.5<x<1
    x = 0.5:0.01:1;
    y = zeros(1,51);
    z1 = 4*x-4*x.^2;       %第一条曲线
    plot3(x,y,z1,'b')
    hold on
     
    x = 0.5:0.01:1;
    y = 1-x;
    z2=2*(1-x).*(3*x-1);   %第二条曲线分段
    plot3(x,y,z2,'r')
    hold on
     
    axis([0 1 0 1 0 1]);   %设置范围[xmax xmin ymax ymin zmax zmin]
    grid on        %生成网格
     
    xlabel('x');   % x轴名称
    ylabel('y');   % y轴名称
    zlabel('z');   % z轴名称

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Matlab二维数组变成三维图像,可以使用plot3函数。plot3函数可以绘制三维曲线或散点图。首先,需要将二维数组转换为三维坐标系的点。可以使用meshgrid函数生成x、y坐标,并将二维数组作为z坐标。然后,使用plot3函数绘制三维图像。 以下是一个示例代码: ```matlab % 生成x、y坐标 \[x, y\] = meshgrid(1:size(A, 2), 1:size(A, 1)); % 将二维数组A作为z坐标 z = A; % 绘制三维图像 plot3(x(:), y(:), z(:), 'o'); ``` 这段代码将二维数组A的行绘制为x坐标,列绘制为y坐标,数组元素作为z坐标。然后使用plot3函数绘制三维图像。每个点的坐标由x、y、z三个数组的对应元素确定。 请注意,这只是一个简单的示例,具体的绘图方式可能需要根据具体的需求进行调整。 #### 引用[.reference_title] - *1* *2* [matlab二维图像的绘制](https://blog.csdn.net/ZHLY0307/article/details/119713320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MATLAB--二维图像和三维图像的绘制](https://blog.csdn.net/m0_58585940/article/details/127602879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值