4D矩阵的Matlab插值
Matlab Interpolation of 4D matrix
我想插值 4D 矩阵。
矩阵大小为 400X200X400X200 的复数。
我正在使用函数:interpn
为此,我必须使用以下方法设置我的新网格:
nd 网格
但是 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);
'single'
参数不属于那里。它被解释为 ones(1,length('single'))
,因此会产生更大的矩阵。
您也可以生成一个 griddedInterpolant
,这样可以节省内存:
F_interp = griddedInterpolant({ky_vec,kx_vec,kv_vec,ku_vec},F)
我想插值 4D 矩阵。 矩阵大小为 400X200X400X200 的复数。 我正在使用函数:interpn
为此,我必须使用以下方法设置我的新网格: nd 网格
但是 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);
'single'
参数不属于那里。它被解释为 ones(1,length('single'))
,因此会产生更大的矩阵。
您也可以生成一个 griddedInterpolant
,这样可以节省内存:
F_interp = griddedInterpolant({ky_vec,kx_vec,kv_vec,ku_vec},F)