2013-04-11 47 views
0

我有一个大小为3xN的无序数组,我想绘制contourf的数据图。 当我尝试contourf:绘制无序数据

contourf(pnts(1,:),pnts(2,:),pnts(3,:)); 

Matlab给出错误。我可以看到contourf不需要1xN数组,它喜欢矩阵绘制。我如何重新排列我的数据,以适应contourf?我似乎没有达到它。

我实际上似乎没有得到如何为contourf订购数据。任何暗示将不胜感激。我的数据可能与this后发现的数据类似,但我不知道它的形状。后的图像:

enter image description here

我的问题在于不具有预定形状。我找到的所有例子都是x和y的meshgrid,然后他们得到Z值,但我的X和Y值可以命名为“有界随机”。我知道它们并不比尺寸大,但我对此不太了解。

编辑 数据:http://pastebin.com/uUxJzttw 您可以直接将其复制并粘贴到Matlab的,它会被保存为变量。

+0

发布数据。或者至少可以与我们合作的一个小型代表性样本。 – Justin 2013-04-11 15:15:14

+0

@jucestain有它! – 2013-04-11 15:31:28

回答

1

contourf(X,Y,Z)需要输入X和Y被单调递增,并且可以使用griddata到分散的数据点转化为一组点的网格上:

N = 20; 
xq = [0:1/N:1] * (max(data(1,:))-min(data(1,:))) + min(data(1,:)); 
xq = repmat(xq, [1 N]); 
yq = [0:1/N:1]' * (max(data(2,:))-min(data(2,:))) + min(data(2,:)); 
yq = repmat(yq, [N 1]); 
vq = griddata(data(1,:),data(2,:),data(3,:),xq,yq); 
contourf(xq, yq, vq); 

我有N想你的数据= 20和30,N = 20占了我20秒,N = 30就像1-2分钟。

+0

N是点数?该死的,我的Ns通常是5000。这是很多时间... – 2013-04-12 07:09:36

+0

对不起,但执行代码时显示的结果形状不符合真实点...它应该几乎是一个正方形,并且我得到一个非常奇怪的形状.. – 2013-04-12 09:29:15

+0

N是数字对于vq的每个x和y维度的点数。就形状而言,它是等于或等于你希望的方形数据点?你可以通过运行plot(data(1,:),data(2,:),'x')'来检查你的数据点在x-y平面上的分布情况吗?它对我来说是一个平行四边形。 – YYC 2013-04-12 16:56:13