错误使用interp2

4次浏览(最近30天)
克里斯蒂安stokkereit
克里斯蒂安stokkereit 2021年8月20日
评论道: Chunru 2021年8月21日
我试图在一个规则的网格上插入大量的点。我有一个名为fld1intsty的大数组,大小为320723x3,将第一个、第二个和第三个簇分别对应于x、y和z轴;另外,第一列的值分布在1.0到601.0之间,第二列的值分布在0.0到0.8之间。我已经尝试在一个网格上定义,在x和y方向上分别间隔为1.0和0.01,具有相同的上限和下限。
dx = 1.0;
dy = 0.01;
ξ= 1.0:dx: 601.0
易= 0.0:dy: 0.8
[XI, YI] = meshgrid (XI, YI);
field1 = interp2 (fld1intsty (: 1), fld1intsty (:, 2), fld1intsty (:, 3), XI,易);
当我这样做时,我在第100行(以field开头的行)得到一个错误,它说:
错误使用griddedInterpolant
插值每个网格维度至少需要两个样本点。
错误在interp2>中makegriddedinterp(第226行)
F = griddedInterpolant(变长度输入宗量{:});
错误在interp2(第126行)中
F = makegriddedinterp({X, Y}, V, method, extrp);
错误在full_band中(第100行)
field1 = interp2 (fld1intsty (: 1), fld1intsty (:, 2), fld1intsty (:, 3), XI,易);
我不明白我在做什么,因为输入字段的大小显然匹配,因为它们来自同一个数组。任何帮助都会很感激,如果不是以解释的形式,那么直接解决也会很好。我也知道像这样的问题已经被问过了,但我发现它们更令人困惑而不是有用。谢谢你!

答案(1)

Chunru
Chunru 2021年8月20日
当你有不规则的数据点(x,y,z)时,你应该使用“griddata”而不是“interp2”。详情请参阅“doc griddata”。否则就会得到一些数据。
2的评论
Chunru
Chunru 2021年8月21日
输入错误。应该是“提供”。

登录评论。

类别

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!