在同一图形上组合绘图和冲浪(matlab)

在同一图形上组合绘图和冲浪(matlab),matlab,plot,Matlab,Plot,我想用Matlab在同一个图上绘制一些磁盘的曲面图。 我的问题是计算由小型圆形障碍物(圆盘)散射的波。波浪在网格(X,Y)上计算,并存储为矩阵U。可使用以下命令绘制: surf(X,Y,U,'EdgeColor','None','facecolor','interp'); 这会导致一个错误(我无法在stackoverflow上上载图像) 现在,我想在同一张图片上添加磁盘。注意,“O”是圆盘中心的矩阵,“a”是圆盘半径的向量,N_scat是圆盘的数量 hold on surf(X,Y, U, 'E

我想用Matlab在同一个图上绘制一些磁盘的曲面图。 我的问题是计算由小型圆形障碍物(圆盘)散射的波。波浪在网格(X,Y)上计算,并存储为矩阵U。可使用以下命令绘制: surf(X,Y,U,'EdgeColor','None','facecolor','interp'); 这会导致一个错误(我无法在stackoverflow上上载图像)

现在,我想在同一张图片上添加磁盘。注意,“O”是圆盘中心的矩阵,“a”是圆盘半径的向量,N_scat是圆盘的数量

hold on
surf(X,Y, U, 'EdgeColor','None', 'facecolor', 'interp');
theta = [1:361]*2*pi/360;
nb = length(theta);
for p = 1:N_scat
    plot(O(1,p).*ones(1,nb) + a(p).*cos(theta), O(2,p).*ones(1,nb) + a(p).*sin(theta), 'k', 'LineWidth', 1)
end
hold off
view(2);
colorbar;
然而,这部分给出了期望的结果()。的确,磁盘是显示出来的,但正如您所看到的,它们中的大多数只是部分绘制的

有人有主意吗

同样的结果也发生在: -网格代替冲浪 -surf中无选项(经典平面表示和边着色) -磁盘的线宽更大或更小

提前感谢您,祝您度过愉快的一天



问题是因为圆是在z=0处绘制的,所以它们在某些点位于曲面下方

您可以在plot调用中指定线的zdata,我建议在曲面的最大高度处绘制所有圆(任何更高的都可能影响彩色贴图)

在循环外部定义zdata,例如

myzdata=max(U(:))*ones(1,nb);
然后在循环内部将其设置为该行的zdata

for p = 1:N_scat
    plot(... what you had before ...,'zdata',myzdata)
end