背景:
我有一个6乘6的矩阵。我需要根据以下步骤通过滑动3乘3窗口来更新网格点之间的值:
(1)第一个滑动窗口是:将x8
视为中心,我有w1 = {x1, x2, x3, x7, x8, x9, x13, x14, x15}
。
(2)通过在每个网格点上加1来更新这9个点的值。
(3)移至下一个窗口:将x9
视为中心,我有w2 = {x2, x3, x4, x8, x9, x10, x14, x15, x16}
。通过向每个网格点添加1来再次更新这些网格点的值。 请注意,我使用x2, x8 and x14
的原始值代替步骤2中的更新值。
(4)过程继续,我将有16个窗口/ 9点数据集。
我的问题是:
(5)有些交叉点说,x8
与4个窗口重叠。然后我想从4个窗口中取出x8
并将它们加在一起,然后除以4(平均值)。
(6)有些交叉点,x15
确实与9个窗口重叠。同样,我想获得x15
的这9个值中的平均值。
(7)在这些更新之后,我希望有一个更新的6乘6矩阵来存储结果。
我的想法:
(1)在每个窗口w1, w2, ..., w16
上应用“添加一个”。
(2)在窗口中选取常用值:
如果x8
与4次相交,则添加x8
并除以4;
如果x15
与9次相交,则添加x15
并除以9。
需要帮助:
我想在matlab中编写代码。因此,我计划使用ismember
来提取窗口中的常见值,但似乎ismember
不能有多个输入。我是否知道matlab
中是否有任何巧妙的方法可以达到这个目的?
由于我是matlab
的新手,我们将非常感谢更详细的代码。