【问题标题】:Overlay the data points which make-up a contour plot matrix on the same plot in MATLAB将构成等高线图矩阵的数据点叠加在 MATLAB 中的同一图上
【发布时间】:2016-09-17 22:02:09
【问题描述】:
希望标题能充分描述我的问题。基本上,我使用 contourf (x,y,z) 函数在 MATLAB 中生成等高线图,其中 x 和 y 是不同长度的向量,z 是维度为 x 乘以 y 的数据矩阵。轮廓图很好,但是,我希望用矩阵 z 中的实际数据点覆盖这个图。我曾尝试使用 scatter 函数,但我收到一条错误消息,通知我 X 和 Y 必须是相同长度的向量 - 但事实并非如此。有没有其他方法可以做到这一点?
提前感谢任何帮助/建议!
【问题讨论】:
标签:
matlab
plot
matlab-figure
contour
contourf
【解决方案1】:
我认为meshgrid 应该可以帮助您。
z = peaks; %// example 49x49 z data
x = 1:20;
y = 1:49;
z = z(y,x); %// make dimensions not equal so length(x)~=length(y)
[c,h] = contourf(x,y,z);
clabel(c,h); colorbar;
[xx,yy]=meshgrid(x,y); %// this is what you need
hold on;
plot(xx,yy,'k.'); %// overlay points on contourf
注意 plot 代替 scatter 就足够了。如果您坚持,例如,scatter(xx(:),yy(:),10) 可以解决问题。虽然我的例子不是特别有趣,但希望这能让你开始追求美学上的目标。