如何解决MATLAB:由两个变量构成矩阵,并从第三个变量绘制轮廓
| 我在192x1向量中有3个变量(x
,y
,z
)。数据都是随机的,有时具有缺失值(NaNs)。
我想将变量c
相对于其他两个变量x
和ѭ1contour作为轮廓图绘制(x轴上为x
,y轴上为y
,,2ѭ组成轮廓线)。
我最大的问题是为x
和y
组成192x192矩阵,因为x
和y
由随机数据组成。我尝试使用GRIDDATA,Delaunay和TriScatteredInterp,但是它们没有用,因为我的数据中包含NaN。
有人知道我能做什么吗?如果有一种方法可以从x
和y
的散点图返回x
vsy
的矩阵,那么我的问题就可以解决。
范例程式码
x=rand(192,1);
y=rand(192,1);
z=rand(192,1);
[X,Y]=meshgrid(x,y);
contour(X,Y,z);
???在74使用==>轮廓时出错
Z的大小必须为2x2或更大。
解决方法
您要使用NaN做什么?它们是否包含绘制轮廓图的其他信息?您不能删除它们吗?
idx = any(isnan([x y z]),2);
x(idx)=[];
y(idx)=[];
z(idx)=[];
然后,您可以根据此问题应用解决方案。无论如何,丢失的数据将被解释。
,由于轮廓图的性质,问题在于矩阵z的大小。如果调试代码,您会看到在调用meshgrid之后,X和Y的大小将变为192 x192。只需更改以下行即可使用!让我知道问题是否解决了;)
z=rand(192,192);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。