小编use*_*926的帖子

矩阵的滑动窗口求和

我有一个 50x50 矩阵,我想对每 10x10(或另一个设置大小值 - 始终为正方形)重叠网格中的值求和,即:

在此处输入图片说明

为清楚起见,重叠窗口仅显示在对角线上。我尝试做的第一个任务是定义每个窗口的坐标:

win=10;
start = [1,10,1,10];
for y=1:(50-win)
    for g=1:(50-win)
        tmp = [start(g,1)+1,start(g,2)+1,start(end,3),start(end,4)];
        start = [start;tmp];
    end
    start(end+1,1:4) = [1,10,1+y,10+y];
end
Run Code Online (Sandbox Code Playgroud)

然后我会遍历坐标列表,使用sum每个窗口的逻辑索引。

问题#1:上面的代码不是特别有说服力。任何人都可以展示一种更“MATLABesque”的方式或更简洁的方式吗?

问题#2:然后我想在矩阵中定义一个特定的坐标(索引),例如m(26,26)并获取包含该坐标的所有窗口的列表。但我不知道该怎么做。有人可以告诉我怎么做吗?

arrays matlab matrix

7
推荐指数
1
解决办法
220
查看次数

标签 统计

arrays ×1

matlab ×1

matrix ×1