【发布时间】:2017-12-13 10:30:36
【问题描述】:
我有函数 f=f(x,y,z) 在大小为 MxNxP 的点网格上进行数值计算。
我需要在(显然)不同维度的更精细网格上插入这些值。就像我对 interp1 所做的那样,当我在一个区间内只有一些函数值并且我想对其进行插值以找到更多点的值。
我尝试执行此代码:
XX=linspace(0,45,50);
YY=linspace(0,0.5,50);
ZZ=linspace(0,0.5,50);
U_1 = interp3(X,Y,Z,f,XX,YY,ZZ,'linear')
其中 X Y Z 是我具有 f 值的点的向量。 XX,YY,ZZ 是我想要解决的点。
我尝试使用 griddata 和 interp3,但收到以下错误消息:
使用 griddedInterpolant 时出错
网格向量不定义与给定值匹配的点网格。
interp3 中的错误(第 133 行)
F = griddedInterpolant({X, Y, Z}, V, method,extrap);
你能帮帮我吗?
【问题讨论】:
-
使用 griddedInterpolant 时出错 网格向量未定义与给定值匹配的点网格。 interp3 中的错误(第 133 行) F = griddedInterpolant({X, Y, Z}, V, method,extrap);
-
对于函数
interp3,您需要使用由meshgrid生成的混合方向向量或矩阵。请参阅文档和/或提供有关 f、X、Y 和 Z 数据格式的更多数据 -
f 是表示通道中流速的函数。通道的尺寸是 40x0.5x0.5,我有函数 f 在 X、Y、Z 中的值。我试着做 [XX,YY,ZZ] = meshgrid(0:hx:45,0:hy :0.5,0:hz:0.5) 但它不起作用。错误还是一样
标签: matlab interpolation