在Matlab中添加矩阵中n个相邻行的优雅方法是什么?

问题描述 投票:0回答:1

例如,对于矩阵 A = [1 2; 3 4; 5 6; 7 8; 9 10; 11 12],输出将是 B = [4 6; 12 14; 20 22] 如果我将矩阵中每两个相邻行相加。

ps:如果该函数也适用于列向量来对 n 个相邻条目求和,那就更好了。

matlab vectorization
1个回答
0
投票

您可以使用

reshape
sum
来完成此操作:

k = 2; % how many elements to sum
n = size(A,1)/k;
out = reshape(A, k, n, []);
out = sum(out, 1);
out = reshape(out, n, []);

当然,

n
必须是整数。也就是说,矩阵的高度必须能被
k
整除。

(我将其分行写出来,以便更清楚地了解正在发生的事情,但当然,如果您愿意,可以将其变成一句台词。)

© www.soinside.com 2019 - 2024. All rights reserved.