Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
4D矩阵的Matlab插值_Matlab_Interpolation - Fatal编程技术网

4D矩阵的Matlab插值

4D矩阵的Matlab插值,matlab,interpolation,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

我想插值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);

'single'
参数不属于此处。它被解释为
one(1,长度('single'))
,从而产生更大的矩阵

您还可以生成一个
GridDedInterplant
,这样可以节省内存:

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

请发一张MWE。什么是
ky\u vec
kx\u vec
kv\u vec
ku\u vec
f
?等等?如果已经有了
f
,为什么还要进行插值?
f
不是一个函数吗?你真的需要澄清你的实际问题,这似乎没有任何意义。@kndelsepp可能
f
需要更长的时间,插值被认为是更快的操作?不管怎么说,我们要计算数十亿个点,当然这需要很长时间。问题应该澄清。这就是解决方案,谢谢@用户1112136:如果你认为这个答案是你问题的解决方案,请点击旁边的灰色复选标记接受它。