2011-05-24 51 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