4D矩阵的Matlab插值

时间:2015-02-14 13:23:19

标签: matlab interpolation

我想插入4D矩阵。 矩阵大小为400X200X400X200的复数。 我使用的功能:interpn

为此,我必须使用以下方法设置我的新网格: ndgrid

但是ndgrid需要几个小时。 你能帮忙吗?

谢谢!

示例代码:

[Y X V U]=ndgrid (ky_vec,kx_vec,kv_vec,ku_vec);
F=f(Y,X,V,U);
[Yt Xt Vt Ut]=ndgrid (ky_vec,kx_vec,ky_vec,kx_vec,'single');
A=interpn(Y,X,V,U,F,0.9*Yt,0.9*Xt,(1-0.9)*Vt,(1-0.9)*Ut,'linear',0.0);

1 个答案:

答案 0 :(得分:1)

'single'参数不属于那里。它被解释为ones(1,length('single')),因此产生更大的矩阵。

您也可以生成griddedInterpolant,这样可以节省内存:

 F_interp = griddedInterpolant({ky_vec,kx_vec,kv_vec,ku_vec},F)