MATLAB:如何让griddata()缓存内容,以便在许多相同的插值中更快地运行?

MATLAB:如何让griddata()缓存内容,以便在许多相同的插值中更快地运行?,matlab,caching,optimization,grid,interpolation,Matlab,Caching,Optimization,Grid,Interpolation,我使用MATLAB中的griddata命令将大小为128x256x1500的球形网格转换为笛卡尔立方网格,以球体为中心,包含N^3个规则间隔的点,其中N在128和512之间。在我的模拟中,我需要对几十个或数百个检查点以及每个检查点的几个变量执行此操作。我需要从同一个球面网格插值到同一个立方网格几百或几千次,每次都使用球面网格上的新数据 由于该例程中计算量最大的部分是三角剖分和插值,因此我希望在第一次运行该例程时缓存一些信息,并将这些信息用于后续运行 我想我可能可以为立方体网格上的每个点缓存一个顶

我使用MATLAB中的griddata命令将大小为128x256x1500的球形网格转换为笛卡尔立方网格,以球体为中心,包含N^3个规则间隔的点,其中N在128和512之间。在我的模拟中,我需要对几十个或数百个检查点以及每个检查点的几个变量执行此操作。我需要从同一个球面网格插值到同一个立方网格几百或几千次,每次都使用球面网格上的新数据

由于该例程中计算量最大的部分是三角剖分和插值,因此我希望在第一次运行该例程时缓存一些信息,并将这些信息用于后续运行

我想我可能可以为立方体网格上的每个点缓存一个顶点索引和相关插值权重表,但我不确定如何/在何处这样做


据我所知,使用griddata的当前实现是不可能做到这一点的。有什么方法可以这样做吗?也许可以重新编写griddata例程?

您是否研究过:首先构建适合样本点表面的插值,执行一次,然后可以在不同的查询点上对其进行多次评估感谢您的响应!不幸的是,这不是我想要的。假设我在一组点X上定义了值Y,插值后在X1上定义了Y1。scatterdinterpolant类允许我保存X和Y,这样,如果我给它一组新的点X1,它就会给我一组新的插值Y1。它保存了关于3D函数的信息,这样我就可以在几个新的点上插值。我要做的是保存有关几何体的信息。我想重复使用X和X1,这样我可以给它一个新的Y,它会给我一个新的Y1。我明白了,恐怕我不知道有哪个函数能做到这一点。。在我看来,你想实现一种是的,那会奏效。一次计算,多次使用。下面是一个可能会帮助你开始这个想法的例子,有很多。。