不使用超过2块矩阵加法维度和周期

3视图(30天)
亲爱的所有,
我在寻找一个解决方案的块矩阵加法。给一个简单的例子,让我们
= [1,2,3,4,5,6,7,8;9、10、11、12、13、14、15、16);
我想要的结果:
B = (1 + 5, 2 + 6, 3 + 7, 4 + 8;11 + 10 + 9 + 13日,14日,15日,12 + 16);
想到的明显的解决方案是:
sum(重塑(2,4,2),3);
然而,我使用第三方工具与特殊变量的三维数组是没有实现。我的下一个想法是使用:
B = 0 (2、4);
i = 1:4
B (:, i) =总和((:,我:4:结束),2);
结束
如果可能的话我要找函数,可以解决这个不使用一个循环在我的应用程序列数将达到数百和数千。我提前感谢别人的帮助。

接受的答案

骑自行车的人
骑自行车的人 2022年11月22日
这是尴尬的,但是你想要的。我认为这可能是一个更好的方法。
%的输入
= [1,2,3,4,5,6,7,8;9、10、11、12、13、14、15、16);
groupSize = 4;
%输出
B = movsum ([0, groupSize], 2)——movsum ([0, groupSize-1], 2) +一个;
B = B (: 1: groupSize)
B = 2×4
6 8 10 12 22 24 26 28
1评论
Bence Cseppento
Bence Cseppento 2022年11月23日
谢谢你的努力,确实漂亮,但我要为一些其他的情况下对其进行测试。
同时我设法解决问题,管理之间的转换类型和使用原来的3 d版本,但我不知道movsum()函数之前你给了我精神食粮,谢谢!

登录置评。

答案(1)

骑自行车的人
骑自行车的人 2022年11月21日
= [1,2,3,4,5,6,7,8;9、10、11、12、13、14、15、16);
B =(:, 1:结束/ 2)+(:,(结束/ 2)+ 1:结束)
B = 2×4
6 8 10 12 22 24 26 28
1评论
Bence Cseppento
Bence Cseppento 2022年11月21日
谢谢你,我有点背景的复杂化,因为我的问题我不能共享。然而,我仍然在寻找一个更一般的解决方案,例如我想要得到一个2 x20矩阵从2 x2000矩阵,通过求和(:,1:20)、(:,21:40)…(:1981:2000)子矩阵不使用一个循环。

登录置评。