大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
记录几个MATLAB中绘制三维图像的常用函数
1.plot3(x,y,z) /plot3(x,y,z,LineSpec) 用于绘制三维空间中的坐标
需要注意的是当你要绘制由线段连接的一组坐标,那么就将 x、y、z 指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将 x、y、z 中的至少一个指定为矩阵,其他指定为向量。
LineSpec可以是指定的线型、标记或颜色。如“-”表示实线,“–”表示虚线,“r”图像变为红色,“y”图像变为黄色。
现在通过几个实例看一下绘制效果
t = linspace(-10,10,1000);
xt = exp(-t./10).*sin(5*t);
yt = exp(-t./10).*cos(5*t);
p = plot3(xt,yt,t);p.LineWidth=4;//绘制后更改线宽
t = 0:pi/500:pi;
//创建包含三行 x 坐标的矩阵 X。创建包含三行 y 坐标的矩阵 Y
X(1,:) = sin(t).*cos(10*t);
X(2,:) = sin(t).*cos(12*t);
X(3,:) = sin(t).*cos(20*t);
Y(1,:) = sin(t).*sin(10*t);
Y(2,:) = sin(t).*sin(12*t);
Y(3,:) = sin(t).*sin(20*t);
//创建矩阵 Z,其中包含所有三组坐标的 z 坐标。
Z = cos(t);
plot3(X,Y,Z)//绘制多条曲线
legend('1','2','3')
2.stem3(x,y,z) 将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸,其中 X 和 Y 指定 xy 平面中的针状图位置。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
该函数用于绘制三维离散数据图形
figure;
[X,Y] = meshgrid(0:.1:1);//meshgrid函数用于生成网格矩阵
Z = exp(X+Y);
stem3(X,Y,Z);
figure
X = linspace(-pi/2,pi/2,40);
Z = [sin(X); cos(X)];
stem3(Z)
3.mesh(x,y,z) 创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。边颜色因 Z 指定的高度而异。
用于生成网格曲面图
[X,Y] = meshgrid(-8:.5:8);//生成网格矩阵
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C)
colorbar//产生色阶的颜色栏
mesh函数还有其他格式,如mesh(___,C) 进一步指定边的颜色。进一步指定边的颜色;mesh(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明网格图。
4.surf(x,y,z) 创建一个三维曲面图,它是一个具有实色边和实色面的三维曲面。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。曲面的颜色根据 Z 指定的高度而变化。
常用的生成曲面图的函数
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
surf(X,Y,Z,C)
colorbar
此外,surf(X,Y,Z,C) 还指定曲面的颜色。surf(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明曲面。
5.contour(x,y,z)
常用的生成等高线图的函数
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
contour(X,Y,Z)
colorbar
若是想生成带标签的等高线,可用函数contour(X,Y,Z,‘ShowText’,‘on’)实现。
6.meshgrid(x,y) /meshgrid(x,y,z)
用于生成二维或三维的网格
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
实例1:
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标,并在二维网格上计算表达式 x 2 + y 2 x^2+y^2 x2+y2
x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X.^2 + Y.^2
实例2:
使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格,并在二维网格上计算并绘制函数 f ( x , y ) = x e − x 2 − y 2 f(x,y) =xe^{-x^2-y^2} f(x,y)=xe−x2−y2
x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/214266.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...