欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > Matlab:三维绘图

Matlab:三维绘图

2025/4/10 4:45:13 来源:https://blog.csdn.net/m0_71824048/article/details/147026770  浏览:    关键词:Matlab:三维绘图

目录

1.三维曲线绘图命令:plot3

实例——绘制空间直线

实例——绘制三角曲线

2.三维曲线绘图命令:explot3

3.三维网格命令:mesh

实例——绘制网格面

实例——绘制山峰曲面

实例——绘制函数曲线


1.三维曲线绘图命令:plot3

plot3命令是二维绘图plot命令的扩展,使用格式基本相同,只是在参数中多了个第三维的信息。因此,plot(x,ys)和plot3(x,y,z,s)的意义是一样的。s用来控制曲线的类型,颜色,粗细等。

实例——绘制空间直线

>> x=1:0.1:10 %定义x
y=sin(x); %定义y
z=cos(x);
plot(y,z)  %绘制二维图
plot3(x,y,z)  %绘制三维图

实例——绘制三角曲线

>> close all
x=0:pi/10:2*pi; % 生成从 0 到 2*pi 的数据,步长为 pi/10
y1=sin(x);
y2=cos(x);
plot3(y1,y2,x,'m:p')  % 绘制三维曲线,曲线颜色为品红色(m),使用点标记(:)和虚线样式(p)
grid on % 开启网格线,方便查看坐标

2.三维曲线绘图命令:explot3

explot3命令的调用格式
调用格式说明
explot3(x,y,z)在系统默认的区域x∈(-2Π,2Π),y∈(-2Π,2Π)上画出空间曲线x=x(t),y=y(t)
zplot3(x,y,z,[a,b]绘制上述参数曲线在区域x∈(a,b),y∈(a,b)上的三维网格图
ezplot3(...,'animate')产生空间曲线的一个动画轨迹
% 定义参数范围
t = linspace(0, 10*pi, 1000);% 创建图形窗口
figure;
axis([-1 1 -1 1 0 10*pi]); % 设置坐标轴范围
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Animated 3D Curve');% 初始化线条对象
h = plot3(NaN, NaN, NaN, 'b', 'LineWidth', 2);% 循环更新曲线
for i = 1:length(t)% 定义曲线的参数方程x = cos(t(1:i));y = sin(t(1:i));z = t(1:i);% 更新线条对象的数据set(h, 'XData', x, 'YData', y, 'ZData', z);% 刷新图形drawnow limitrate;
end

3.三维网格命令:mesh

此命令生成的是由X,Y,Z指定的网线面,而不是单根曲线。

实例——绘制网格面

>> close all
x=-4:0.25:4;
y=x;
[X,Y]=meshgrid(x,y);  %利用meshgrid函数基于x和y生成二维网格矩阵X和Y。
z=-x.^4+Y.^5;
mesh(Z)
title('网格面')
xlable('x'),ylable('y'),zlable('z')

对于一个三维网格图,有时用户不想显示背后的网格,可以利用hidden命令来实现透明。

hidden on将网格设为不透明状态
hidden off将网格设为透明状态
hidden在on和off之间转换

实例——绘制山峰曲面

用plot3,mesh,meshc和meshz画此函数曲线图形

>> mesh(z)
>> close all
t=-4:0.1:4;
[X,Y]=meshgrid(t);
z=peaks(X,Y);
subplot(1,2,1)
mesh(X,Y,Z),hidden on
title('不显示网格')
subplot(1,2,2)
mesh(X,Y,Z),hidden off
title('显示网格')

实例——绘制函数曲线

>> close all
x = -5:0.1:5;
% 生成网格矩阵
[X,Y] = meshgrid(x);% 计算 Z 值,处理除零错误
R = sqrt(X.^2 + Y.^2);
idx = R == 0; % 找出 R 为 0 的位置
Z = cos(R)./R;
Z(idx) = 1; % 当 R 为 0 时,根据极限值将 Z 设为 1% 创建 2x2 的子图布局
subplot(2,2,1)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,2)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,3)
plot3(X,Y,Z)
title('plot3作图')subplot(2,2,4)
meshz(X,Y,Z) % 这里改为 meshz 函数,与标题匹配
title('meshz作图')

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词