比如以下矩阵,分成3个2行3列的矩阵情况,
以第一个3*2为例
1 2 2
3 4 1
0 2 1
2 2 1
3 1 1
4 2 1
希望1 2 2可以加上第2个中的第1行,加上第3个中的第1行,依次类推一直累加到,
最后得到
1+0+3 2+2+1 2+1+1
3+2+4 4+2+2 1+1+1
也就是
4 5 4
9 8 3
这种的,如何写循环呢谢谢
比如以下矩阵,分成3个2行3列的矩阵情况,
以第一个3*2为例
1 2 2
3 4 1
0 2 1
2 2 1
3 1 1
4 2 1
希望1 2 2可以加上第2个中的第1行,加上第3个中的第1行,依次类推一直累加到,
最后得到
1+0+3 2+2+1 2+1+1
3+2+4 4+2+2 1+1+1
也就是
4 5 4
9 8 3
这种的,如何写循环呢谢谢
可以使用循环来实现矩阵的隔行相加,具体的方法如下:
% 定义原始矩阵
A = [1 2 2;
3 4 1;
0 2 1;
2 2 1;
3 1 1;
4 2 1];
% 定义子矩阵的行数和列数
m = 2; % 行数
n = 3; % 列数
% 计算子矩阵的个数
num_submatrix = size(A, 1) / m;
% 初始化累加矩阵
B = zeros(num_submatrix, n);
% 循环计算累加矩阵
for i = 1:num_submatrix
% 计算当前子矩阵的起始行号和结束行号
start_row = (i - 1) * m + 1;
end_row = i * m;
% 取出当前子矩阵
submatrix = A(start_row:end_row, :);
% 将当前子矩阵的每一行累加到累加矩阵中
for j = 1:size(submatrix, 1)
B(i, :) = B(i, :) + submatrix(j, :);
end
end
运行以上代码,会输出以下结果:
4 5 4
9 8 3
可以看到,最终得到了隔行相加后的结果。其中,累加矩阵B的第i行表示第i个子矩阵的隔行相加的结果。循环的过程中,首先计算出当前子矩阵的起始行号和结束行号,然后取出当前子矩阵,最后将当前子矩阵的每一行累加到累加矩阵中即可。