我在192x1向量中有3个变量(x
,y
,z
)。数据都是随机的,有时还有缺失值(NaN)。
我想将变量c
与其他两个变量x
和y
一起绘制为等高线图(x
在x轴上,y
在y轴上-axis和z
组成轮廓线)。
我最大的问题是为x
和y
组成192x192矩阵,因为x
和y
由随机数据组成。我曾尝试使用GRIDDATA,Delaunay和TriScatteredInterp但它们不起作用,因为我的数据中有NaN。
有谁知道我能做什么?如果有一种方法可以从x
和y
的散点图中返回x
vs y
的矩阵,那么我的问题就会得到解决。
x=rand(192,1);
y=rand(192,1);
z=rand(192,1);
[X,Y]=meshgrid(x,y);
contour(X,Y,z);
???使用==>时出错轮廓在74 Z必须大小为2x2或更大。
答案 0 :(得分:1)
你打算怎么办NaNs?它们是否包含绘制等高线图的任何其他信息?你不能把它们删除吗?
idx = any(isnan([x y z]),2);
x(idx)=[];
y(idx)=[];
z(idx)=[];
然后您可以应用this question的解决方案。无论如何都会解释丢失的数据。
答案 1 :(得分:0)
由于等高线图的存在,问题在于矩阵z的大小。如果您调试代码,您会看到在调用meshgrid后,X和Y的大小为192 x 192.只需更改以下行即可生效!如果问题得到解决,请告诉我;)
z=rand(192,192);