我有一个3D体积(80x80x3点)的测量值([646 2]值和时间点)。此数据未排序,采样时间点之间的时间不等距。我想重新采样/插值以获得更少的时间点(例如[0:0.1:1]间距)。所有数据一起变成[80 80 3 646 2]数组,其中[:::: 2]是时间,我想插入到。
我的第一次尝试是使用interp1,但下面的回答已经对我有了进一步的帮助,现在我不确定的问题是如何在与测量值共享其维度的时候插入时间?我的意思是[:::: 1]是值,[:::: 2]是时间点。
答案 0 :(得分:2)
% suppose your original matrix ranges from 1:80,1:80,1:3,1:646
[x,y,z,t] = ndgrid(1:1:80,1:1:80,1:1:3,1:646);
% and you want to interpolate in finer constructed grids with interval of 0.1
[xi,yi,zi,ti] = ndgrid(1:0.1:80,1:0.1:80,1:0.1:3,1:0.1:646);
% v is your original matrix measurement matrix, vi is the interpolation
vi = interpn(x,y,z,t,v,xi,yi,zi,ti,'spline');