在3d的Matlab 2d等高图

时间:2015-11-15 12:38:24

标签: matlab plot contour

我想在3d空间中绘制2d等高线图但它不应该在XY平面上而是在ZX平面上。有没有办法改变绘制它的平面?

以下是一些例子:

figure;
contourf(ZZ1,YZ1,EH);

hold all;

line([0 0],[0 0],[0 1]);
view(25,20);

输出:

enter image description here

我希望飞机上的轮廓图面向我!

1 个答案:

答案 0 :(得分:1)

这只是大致了解如何使用contourslice

p = peaks(21);
contourf(p);
view(25,20);

enter image description here

插入您的数据而不是peaks(21),并注意尺寸。 然后你可以做类似

的事情
%Get a grid for your data. x and z have dimensions of your old data grid,
%y will is used to build a volume, which will have three slices with the
%data, which is necessary because contourslice takes a volume, not a surface
x = -2:0.2:2;
y = -0.1:0.1:0.1;
z = -2:0.2:2;
[X,Y,Z] = meshgrid(x,y,z);
%Make your data matrix (which is 2D so far) 3D by repeating 3 times in Z
u = repmat(p, [1, 1, 3]);
Sx = []; %No planes to be drawn orthogonal to X
Sy = 0;  %One plane to be drawn orthogonal to Y
Sz = []; %No planes to be drawn orthogonal to Z
%Only draw one of your three y planes. Change X and Z.
figure;
contourslice(X,Y,Z,permute(u,[3, 2, 1]),Sx,Sy,Sz)
view(25,20);

获取

enter image description here