2011-05-24 17 views
4

我有两个矩阵AB含有值形式如何在matlab中执行棋盘插值?

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)for循环在matlab中是缓慢的,2)当然有一种方法使用interp2,虽然这似乎需要类似meshgrid网格。那么,这可以做得更容易/更快吗?

回答

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); 
+1

这对我来说很好。 – 2011-05-24 14:00:31