我有x y z vx vy vz
格式的数据样本,描述了给定位置vx
处的速度分量vy
,vz
和x
,{ {1}}和y
。作为一个简单的测试,假设数据具有以下格式(即,位置不均匀):
z
我想插入每个速度分量,并在一般位置x = rand(1,10);
y = rand(1,10);
z = rand(1,10);
vx = rand(1,10);
vy = rand(1,10);
vz = rand(1,10);
,x0
和y0
找到它们。我可以在Matlab中使用哪个函数?
答案 0 :(得分:4)
您可以在每个组件上使用TriScatteredInterp
(旧版本的Matlab)或scatteredInterpolant
(最新版本的Matlab):
% Define data:
x = rand(1,10)';
y = rand(1,10)';
z = rand(1,10)';
vx = rand(1,10)';
vy = rand(1,10)';
vz = rand(1,10)';
% Construct interpolant objects:
Fx = TriScatteredInterp(x,y,z,vx);
Fy = TriScatteredInterp(x,y,z,vy);
Fz = TriScatteredInterp(x,y,z,vz);
% Evaluate at desired point (here [0.5, 0.6, 0.7])
vx_interp = Fx([0.5, 0.6, 0.7])
vy_interp = Fy([0.5, 0.6, 0.7])
vz_interp = Fz([0.5, 0.6, 0.7])