matlab如何用surfc或contour的等值线图投影到指定的平面上而不是z=0的平面上?

这是最初的陈述:

[X,Y,Z]= peaks(30);

图形,表面(X,Y,Z)

彩色地图hsv

坐标轴([-3 3 -3 3 -10 5])

将等高线图投影到指定的平面z=-20:

h = surfc(X,Y,Z);

zdata = get(h(2:end),' zdata ');

new Zdata = cell fun(@(x)x *(20)/zdata { 1 }(1),zdata,' UniformOutput ',false);% x *(20)

对于k = 1:长度(h)-1;

set(h(k+1),' zdata ',new zdata { k });

结束;

将等高线图投影到指定的平面z=+20:

h = surfc(X,Y,Z);

zdata = get(h(2:end),' zdata ');

new Zdata = cell fun(@(x)x *(20)/zdata { 1 }(1),zdata,' UniformOutput ',false);% x*(+20)

对于k = 1:长度(h)-1;

set(h(k+1),' zdata ',new zdata { k });

结束;

修改x*(+20)括号中的值,将等高线图投影到指定的平面。