MATLAB 3d 曲面图
MATLAB 3d surface plot
我有一个大小为 300x3 的数组。三列具有 A、B 和 C 变量的数据,使得 A 和 B 的范围在 0 和 1 之间,而 C 的范围不同,即我的数组如下所示:
A=====B=====C
0.1===0.1====x
0.1===0.2====x
0.1===0.3====x
.
.
.
0.1====1====x
0.2===0.1===x
0.2===0.2===x
等等...
我想分别在 x、y 和 z 轴上用 A、B 和 C 绘制 3d 图。请帮忙。
但是我不知道为什么有300条数据,所以我在[0:0.1:1] X [0:0.1:1]
中随机创建了100条数据,结果只有100条。
据我所知,有两种方法可以用这些数据绘制 3-D 图形。正如 Cris Luengo 所说,如果你需要 scatter/plot,请使用 scatter3
或 plot3
,它们类似于普通的 plot
。但是如果你需要一个表面,你必须改变数据的结构并使用 mesh
或 surf
.
%%Init
clc; clear;
%%Random Data
y=0.1:0.1:1;
C=[0 0];
for i=1:10
X=[ones(1,10)*i*0.1; y]';
C=[C;X];
end;
C=[C(2:101,:) rand(100,1)];
%%plot scatter/lines
figure()
plot3(C(:,1),C(:,2),C(:,3),'r-')
hold on
plot3(C(:,1),C(:,2),C(:,3),'b.')
%%plot a Surface
figure()
[X,Y] = meshgrid(0.1:0.1:1,0.1:0.1:1);
nC=C(1:10,3)
for i=2:10
nC=[nC C((i-1)*10+1:i*10,3)];
end;
mesh(X,Y,nC)
希望这段代码对您有所帮助。
我有一个大小为 300x3 的数组。三列具有 A、B 和 C 变量的数据,使得 A 和 B 的范围在 0 和 1 之间,而 C 的范围不同,即我的数组如下所示:
A=====B=====C
0.1===0.1====x
0.1===0.2====x
0.1===0.3====x
.
.
.
0.1====1====x
0.2===0.1===x
0.2===0.2===x
等等... 我想分别在 x、y 和 z 轴上用 A、B 和 C 绘制 3d 图。请帮忙。
但是我不知道为什么有300条数据,所以我在[0:0.1:1] X [0:0.1:1]
中随机创建了100条数据,结果只有100条。
据我所知,有两种方法可以用这些数据绘制 3-D 图形。正如 Cris Luengo 所说,如果你需要 scatter/plot,请使用 scatter3
或 plot3
,它们类似于普通的 plot
。但是如果你需要一个表面,你必须改变数据的结构并使用 mesh
或 surf
.
%%Init
clc; clear;
%%Random Data
y=0.1:0.1:1;
C=[0 0];
for i=1:10
X=[ones(1,10)*i*0.1; y]';
C=[C;X];
end;
C=[C(2:101,:) rand(100,1)];
%%plot scatter/lines
figure()
plot3(C(:,1),C(:,2),C(:,3),'r-')
hold on
plot3(C(:,1),C(:,2),C(:,3),'b.')
%%plot a Surface
figure()
[X,Y] = meshgrid(0.1:0.1:1,0.1:0.1:1);
nC=C(1:10,3)
for i=2:10
nC=[nC C((i-1)*10+1:i*10,3)];
end;
mesh(X,Y,nC)
希望这段代码对您有所帮助。