在matlab中插入3D数据

时间:2016-01-26 08:21:26

标签: matlab interpolation

我有x y z vx vy vz格式的数据样本,描述了给定位置vx处的速度分量vyvzx,{ {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); x0y0找到它们。我可以在Matlab中使用哪个函数?

1 个答案:

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