在同一张图中使用不同的底纹

Use different shading in the same figure

是否可以在同一张图中使用不同的shading类型?

例如这段代码:

figure; hold on 
surf(1:10,1:10,repmat(1,10,10),rand(10))
shading flat; hold on
surf(1:10,1:10,repmat(3,10,10),rand(10))
shading flat; hold on
surf(1:10,1:10,repmat(5,10,10),rand(10))
shading interp
view(-15,32)

结果:

因此最后的shading决定了图中所有对象的类型interp

有什么解决办法吗?

默认情况下,当您使用 surf 时,'FaceColor' is flat and 'EdgeColor'black
shading flat'FaceColor' 设置为 'flat',将 'EdgeColor' 设置为 none
shading interp'FaceColor' 设置为 'interp',将 'EdgeColor' 设置为 none

因此您可以像这样指定这些属性:

figure;
surf(1:10,1:10,repmat(1,10,10),rand(10),'EdgeColor','none');
hold on;     %You don't need to use hold on again and again
surf(1:10,1:10,repmat(3,10,10),rand(10),'EdgeColor','none');
surf(1:10,1:10,repmat(5,10,10),rand(10),'FaceColor', 'interp','EdgeColor','none');
view(-15,32);

给出:

或获取每个曲面图的句柄,稍后如 documentation 所示进行更改。