如何在matlab中执行棋盘插值?

Tob*_*ler 4 matlab interpolation

我有两个矩阵A,B包含棋盘格/棋盘状网格的值

AxAxAxAx...
xBxBxBxB...
AxAxAxAx...
xBxBxBxB...
...........
...........
Run Code Online (Sandbox Code Playgroud)

其中x表示我想要(线性)插值的尚未知的值.实现这一目标的最简单方法是什么?

首先可能是

C = zeros(size(A)+size(B));
C(1:2:end,1:2:end) = A;
C(2:2:end,2:2:end) = B;
Run Code Online (Sandbox Code Playgroud)

获得上述矩阵.现在我可以遍历所有剩余的点并取所有直接邻居的平均值,因为1)formatlab中的循环很慢而且2)肯定有一种使用方法interp2,尽管这似乎需要类似meshgrid网格.那么,这可以更容易/更快地完成吗?

Tob*_*ler 7

感谢woodchips 答案,我发现他的inpaint_nans,解决方案确实很简单:

C = nan(size(A)+size(B));
C(1:2:end, 1:2:end) = A;
C(2:2:end, 2:2:end) = B;
C = inpaint_nans(C);
Run Code Online (Sandbox Code Playgroud)