在3D中的轮廓线之间的表面

时间:2017-12-02 15:57:37

标签: matlab 3d contour

我有这样的代码:

load('something.mat');
[X,Y] = meshgrid(tx,ty);

tt1 = U_TV1(:,:,1);
tt2=U_TV1( :,:,2);
tt3=U_TV1( :,:,3);

figure(2);
% surf(X, Y, tt1, 'FaceAlpha', 0.3);
shading interp;
hold on;
e = [1 3]; % [ .001  .1 .3  1  3 10 ]; % epsilon
[c1, h1] = contour3(X, Y, tt1, e, 'r');
[c2, h2] = contour3(X, Y, tt2, e, 'b');
[c3, h3] = contour3(X, Y, tt3, e, 'g');
% legend('k=1', 'k=2', 'k=3');
clabel(c1, h1, e, 'fontsize', 10, 'fontweight', 'bold');
clabel(c2, h2, e, 'fontsize', 10, 'fontweight', 'bold');
clabel(c3, h3, e, 'fontsize', 10, 'fontweight', 'bold');
zlim([0 15]);

结果是遵循3D情节:

Plot from Matlab

如何在相同数字的轮廓之间填充空间(绘制曲面)?

我想要这样的东西(用Paint制作):

Output I want

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

解决方案包括两个步骤:

  1. 提取您想要适合情节的点/线
  2. 使用fit
  3. 在这些点上拟合曲面