假设我有一个矩阵 A,其尺寸为 4x4。
现在我想通过因子 2 对该矩阵进行下采样,以获得一个维度为 2x2 的新矩阵 B。
我想通过以下方式进行下采样:
让 A 成为
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
我希望 B 成为
3.5000 11.5000
5.5000 13.5000
为了得到 B(1,1) = 我取平均值 (1, 5, 2 and 6)
要得到 B(1,2) = 我取平均数 (9, 13, 10 和 14)
为了得到 B(2,1) = 我取平均值 (3, 7, 4 and 8) 等等。
因此,对于 B 中的每个元素,我从 A 中获取相应的 2x2 块并取其平均值。
在我的例子中,矩阵 A 的维度很大。此外,下采样因子可以是任意的。
例如,A =
1 7 13 19 25 31
2 8 14 20 26 32
3 9 15 21 27 33
4 10 16 22 28 34
5 11 17 23 29 35
6 12 18 24 30 36
用于大小为 3/2 的下采样。
矩阵 B 的大小为 4x4。
对于每个 B 单元,我必须采用不重叠的 1.5x1.5 块 A。
例如,
B(1,1) = 平均值(1, 0.5x7, 0.5x2, 0.5x8)
B(2,1) = 平均值(0.5x2, 0.5x8, 3, 9)
B(3,1) = 平均值(4, 0.5x10, 0.5x5, 0.5x11)
B(4,1) = 平均值(0.5x5, 0.5x11, 6, 12)
等等。
没有for循环有没有更快的方法来做到这一点?