如何在Matlab中执行棋盘格插值?

问题描述

| 我有两个矩阵
A
B
,它们包含以下形式的棋盘格/棋盘格网格的值
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)当然可以使用
interp2
,尽管这似乎需要像
meshgrid
的网格。那么,这可以更容易/更快地完成吗?     

解决方法

多亏了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);
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...