Matlab - 2D浓度/等高线图

时间:2016-08-09 13:04:55

标签: matlab plot 2d gradient contour

2D matlab等高线图 - 浓度图

我有两组数据

x =(x1,x2,x3 ....) y =(y1,y2,y3 ....)

描述了飞机中一组点的笛卡尔坐标。所以x1y1是对象1的坐标,依此类推。

坐标仅限于某些值:最小值(0)和最大值,用于描述平面的尺寸(矩形)。

例如,坐标可能描述房间中对象的位置,或字段中的树木等。

如何使用matlab将这些坐标(两组数据)表示为2D轮廓/浓度图?即,而不仅仅是平面上的点(散点图),平滑连续的彩色图/

亲切的问候 w ^

2 个答案:

答案 0 :(得分:0)

你所要求的并不是很明显。记住要制作轮廓,除了x和y之外还需要另一组数据。

我认为您尝试实现的目标可以使用meshgrid来完成,它可以为您的数据提供适当的网格:

x = rand(1,20);
y = rand(1,20);
[X,Y]=meshgrid(x,y);
Z = zeros(size(X));
mesh(X,Y,Z);

enter image description here

答案 1 :(得分:0)

生成一个矩阵,其中每个值都是一个坐标区域,并为该区域中的每个点添加1。

所以例如你得分(0.5,0.7)(0.9,0.8)(1.5,0.6)(1.8,1.2)

然后将其映射到矩阵,其中每个值对应一个" square"值区域1x1。

a(1,1) = everything in the region 0 <= x < 1, 0 <= y < 1
a(1,2) = everything in the region 0 <= x < 1, 1 <= y < 2
a(2,1) = everything in the region 1 <= x < 2, 0 <= y < 1
a(2,2) = everything in the region 1 <= x < 2, 1 <= y < 2

所以你会得到[2 1;0 1],然后你可以勾勒它。

如果您需要更精细的分辨率,只需减小映射大小。

我无法动态地为您提供代码解决方案,因为我的Matlab有点生疏,但原则应该可以正常工作。