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

时间:2011-05-24 12:33:38

标签: matlab interpolation

我有两个矩阵AB包含格式的棋盘/棋盘式网格的值

AxAxAxAx...
xBxBxBxB...
AxAxAxAx...
xBxBxBxB...
...........
...........

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

首先可能是

C = zeros(size(A)+size(B));
C(1:2:end,1:2:end) = A;
C(2:2:end,2:2:end) = B;

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

1 个答案:

答案 0 :(得分:7)

感谢woodchips'回复here我找到了他的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);