MATLAB程序设计:三维绘图详解
创作时间:
作者:
@小白创作中心
MATLAB程序设计:三维绘图详解
引用
CSDN
1.
https://blog.csdn.net/qq_45732223/article/details/116239555
三维绘图是MATLAB中非常重要的可视化工具,广泛应用于科学计算和工程分析领域。本文将详细介绍MATLAB中三维绘图的基本方法,包括三维线绘图、三维曲面绘图、网格绘图和等高线绘图等。通过具体的代码示例和图形展示,帮助读者掌握三维数据可视化的关键技巧。
一般来说,三维绘图主要用于显示两种类型的数据:
- 两个变量是同一个独立变量的函数,且此时需要强调独立变量的重要性。
- 单变量是两个独立变量的函数。
三维线绘图
考虑函数 x(t)=e^{-0.2t}cos2t与y(t)=e^{-0.2t}sin2t代表一个机械系统在两个维度上的衰减振荡,因此x和y表示在任何给定时间的系统位置。这里,x和y是相同独立变量t的函数。
t = 0:0.1:10;
x = exp(-0.2*t).*cos(2*t);
y = exp(-0.2*t).*sin(2*t);
% 1.使用二维绘图函数plot绘制,时间对系统行为的重要性无法凸显;
figure;
plot(x,y); title('\bf 二维线绘图'); xlabel('\bf x'); ylabel('\bf y');
grid on;
% 2.函数plot3绘制变量时可以保留时间信息以及对象的二维位置.
figure;
plot3(x,y,t); title('\bf 三维线绘图'); xlabel('\bf x'); ylabel('\bf y'); zlabel('\bf time');
grid on;
三维曲面、网格和等高线绘图
任何具有两个独立变量的函数都可以在三维曲面、网格或等高线绘图上显示。
- mesh(x,y,z) —创建网格或线框绘图;
- surf(x,y,z) —创建曲面绘图;
- contour(x,y,z) —创建等高线绘图。
- 使用嵌套循环语句创建三个数组并进行网格绘图
% 创建如下函数的网格绘图 z(x,y)=e^{-0.5*(x^2+0.5(x-y)^2)}
% 其中 -4<=x<=4,-3<=y<=3,取值间隔为0.1。
% 分析:在三维MATLAB绘图中,x的个数代表数据点数组的列数,y的个数代表数据点数组的行数,
% 所以z包含61行x81列合计4941个值。
% Get x and y values to calculate
x = -4:0.1:4;
y = -3:0.1:3;
% Pre-allocate the arrays for speed
array1 = zeros(length(y),length(x));
array2 = zeros(length(y),length(x));
array3 = zeros(length(y),length(x));
% Populate the arrays
for jj = 1:length(x) % 列数
for ii = 1:length(y) % 行数
array1(ii,jj) = x(jj);
array2(ii,jj) = y(ii);
array3(ii,jj) = exp(-0.5*(array1(ii,jj)^2+0.5*(array1(ii,jj)-array2(ii,jj))^2));
end
end
% Plot the data
mesh(array1,array2,array3);
title('\bf Mesh Plot'); xlabel('\bf x'); ylabel('\bf y'); zlabel('\bf z');
- 使用MATLAB函数 meshgrid 来创建x和y值的数组
meshgrid 函数的一般形式为
[arr1,arr2] = meshgrid(xstart:xinc:xend,ystart:yinc:yend);
其中,
xstart:xinc:xend 指明了包含在网格中的x值,
ystart:yinc:yend 指明了包含在网格中的y值。
% 创建如下函数的网格绘图 z(x,y)=e^{-0.5*(x^2+0.5(x-y)^2)}
% 其中 -4<=x<=4,-3<=y<=3,取值间隔为0.1。
% Get x and y values to calculate
[array1,array2] = meshgrid(-4:0.1:4,-3:0.1:3);
% Calculate z
array3 = exp(-0.5*(array1.^2+0.5*(array1-array2).^2));
% Plot the data
mesh(array1,array2,array3);
title('\bf Mesh Plot'); xlabel('\bf x'); ylabel('\bf y'); zlabel('\bf z');
使用曲面和网格绘图创建三维物体
曲面和网格绘图可用于创建封闭对象(如球体)的绘图。
% Define the number of angles on the sphere to plot
n = 20;
% Calculate the points on the surface of the sphere
r = 1; % 半径
theta = linspace(-pi,pi,n); % 方位角
phi = linspace(-pi/2,pi/2,n); % 仰角
[theta,phi] = meshgrid(theta,phi);
% Convert to (x,y,z) values
x = r*cos(phi).*cos(theta);
y = r*cos(phi).*sin(theta);
z = r*sin(phi);
% Plot the sphere
figure;
surf(x,y,z);
alpha(0.5); % 控制当前轴上物体表面和贴片的透明度
title('\bf Sphere');
热门推荐
新手必看指南!三国杀神将超全介绍-神将技能详细介绍
华为手机无法使用电信卡上网的原因及解决方法详解
战略执行一体化:体现在企业上的知行合一
超详细的紫外光谱知识,值得收藏~
埃及人修金字塔的时候,“中国人”在干什么?说出来你可能不信
为什么某些商品价格会出现大幅上涨?这种上涨背后的原因是什么?
2024年3D打印技术十大突破:新材料、新工艺和新应用全面开花
冷成型原理简述
代餐真的可以帮助减重吗?
代餐哪种减肥效果最好
搜索引擎的演变与未来趋势分析
国四和国五排放标准的区别在哪里?如何选择符合环保要求的车辆?
电动车、三轮车、四轮车上牌、保险费用明确!这些都是乱收费
生活饮用水五大指标
喝烧开的自来水安全吗?纯净水和矿泉水的分别是什么?你知道吗?
看“数智”加持中小学!长沙举行AI赋能体育教学专题培训
先秦诸子,以思想为刃,“砍出” 中国文化的通天大道
古典韵味的女宝宝名字 彰显文化有含义
互联网法院起诉需要符合哪些法律规定
探究购买高仿包包背后的心理动机
全纳教育:为每个孩子创造公平学习环境的理念与实践探索
区块链技术提升自动化系统安全性
马兰花的生长环境与种植方法
马兰花如何栽培管理
“舌头的门道”,多系统萎缩患者一定要特别关注!
二手房房龄对贷款的影响
海南三亚周边热门漂流与水上乐园全解析:旅游景点推荐与体验指南
什么是EPS头盔:终极指南EPS泡沫头盔
《几何原本》的内容结构与核心思想
汽车三元催化器缺失的影响及预防措施