2

我有 2 个向量 X 和 Y,对应于无序坐标列表,以及每个点的对应浓度向量 C。

我想在结构化网格上将其绘制为 2D 等高线图。

scatter3(X,Y,C,[],C);

给了我我想要的视觉效果,但我正在寻找 2D 轮廓,即pcolor. 有没有像 griddata 或 trigriddata 这样的简单解决方案?

编辑:好的,所以 `scatter3(X,Y,C,[],C); view([0 90])´ 是正确的视觉效果。TriScatteredInterp 非常适合矩形。但是像地图这样的不规则形状呢?:=)

F = TriScatteredInterp(x,y,C); ty=0:0.005:0.284; tx=0:0.005:0.65; [qx,qy] = meshgrid(tx,ty); qC = F(qx,qy); pcolor(qx,qy,qC);

示例:(X=宽度坐标,Y=高度坐标,C=污染物浓度)

X    Y    C
0.1  0.0  5
0.1  0.1  10
0.1  0.21 5
0.2  0.1  4
0.2  0.3  1
0.2  0.5  2
0.2  0.51 7
0.3  0.15 4
0.3  0.36 6
0.3  0.5  3
0.3  0.52 7

scatter3(X,Y,C,[],C,'filled');      %individual plotting of X,Y pairs and colors=C
view([0 90])                        %see only XY and Z becomes flat

想象一下,我们有 10000 个 XY 对,所以scatter3几乎可以产生一个image但没有插值。

4

1 回答 1

0

如果我正确理解您的问题,您可以使用contour(X,Y,Z)

编辑:您可以使用imagesc自己制作的矩阵。因此,如果您的xy值在合理的范围内,您可以从以下开始:

I = zeros(max(x), max(y));
for d = 1: length(x),
    I(x(d),y(d)) = z(d);
end
imagesc(I);
于 2012-01-06T14:01:58.920 回答