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