MATLAB 3d表面图

时间:2018-01-31 00:29:04

标签: matlab plot matlab-guide

我有一个大小为300x3的数组。三列具有说A,B和C变量的数据,使得A和B的范围在0和1之间,并且C&#39的范围变化,即我的阵列如下:

一个=====乙=====ç

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图。请帮忙。

1 个答案:

答案 0 :(得分:1)

但是,我不知道为什么有300个数据,所以我在[0:0.1:1] X [0:0.1:1]中创建了随机100个数据,而且只有100个。

据我所知,有两种方法可以用这些数据绘制三维图形。就像Cris Luengo所说,如果你需要散点/情节,使用scatter3plot3,它们就像普通plot一样。但是,如果您需要曲面,则必须更改数据的结构并使用meshsurf

%%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)

希望此代码有所帮助。