MATLAB:从两个变量中生成矩阵,并从第三个变量绘制轮廓

时间:2011-05-25 12:56:51

标签: matlab variables matrix contour

我在192x1向量中有3个变量(xyz)。数据都是随机的,有时还有缺失值(NaN)。 我想将变量c与其他两个变量xy一起绘制为等高线图(x在x轴上,y在y轴上-axis和z组成轮廓线)。

我最大的问题是为xy组成192x192矩阵,因为xy由随机数据组成。我曾尝试使用GRIDDATA,Delaunay和TriScatteredInterp但它们不起作用,因为我的数据中有NaN。 有谁知道我能做什么?如果有一种方法可以从xy的散点图中返回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或更大。

2 个答案:

答案 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);