1

我在一个 192x1 向量中有 3 个变量 ( x, y, )。z数据都是随机的,有时会有缺失值(NaN)。我想c根据其他两个变量xy等高线图绘制变量(x在 x 轴上,y在 y 轴上,并z构成等高线)。

我最大的问题是组成 192x192 矩阵xy因为xy由随机数据组成。我曾尝试使用 GRIDDATA、Delaunay 和 TriScatteredInterp,但它们不起作用,因为我的数据中有 NaN。有谁知道我能做什么?如果有一种方法可以从散点图中返回xvs的矩阵,那么我的问题就会得到解决。yxy

示例代码

x=rand(192,1);
y=rand(192,1);
z=rand(192,1);

[X,Y]=meshgrid(x,y);
contour(X,Y,z);

???在 74 Z 处使用 ==> 轮廓的错误必须为 2x2 或更大。

4

2 回答 2

1

你打算用 NaN 做什么?它们是否包含绘制等高线图的任何附加信息?你不能直接删除它们吗?

idx = any(isnan([x y z]),2);
x(idx)=[];
y(idx)=[];
z(idx)=[];

然后你可以应用这个问题的解决方案。无论如何都会解释缺失的数据。

于 2011-05-27T20:13:39.150 回答
0

由于等高线图的特性,问题在于矩阵 z 的大小。如果你调试你的代码,你会看到在调用 meshgrid 之后,X 和 Y 的大小变为 192 x 192。只需更改以下行,它就可以工作了!让我知道问题是否已解决;)

z=rand(192,192);
于 2011-05-25T16:30:30.460 回答