合并数组以创建求和域数组

时间:2018-08-10 08:02:39

标签: image image-processing wolfram-mathematica

在Mathematica中-如何对一个数组进行装箱以创建一个新数组,该数组由具有给定大小的旧数组的总和组成??

示例:

enter image description here

谢谢。

2 个答案:

答案 0 :(得分:1)

这比@ChrisDegnen的解决方案要简单一些。给定array表达式的相同定义

Map[Total, Map[Flatten, Partition[array, {2, 2}], {2}], {2}]

产生

{{4, 10}, {8, 10}}

如果您愿意,此表达式

Apply[Plus, Map[Flatten, Partition[array, {2, 2}], {2}], {2}]

使用ApplyPlus而不是MapTotal,但完全等效。

答案 1 :(得分:0)

这适用于示例,但是通用版本需要更多工作。

array =
  {{1, 1, 1, 2},
   {1, 1, 3, 4},
   {2, 2, 2, 3},
   {2, 2, 2, 3}};

Map[Total,
 Map[Flatten,
  Map[Transpose,
   Map[Partition[#, 2] &, Partition[array, 2], 2],
   2], {2}], {2}]

% // MatrixForm
4 10
8 10