wl2020mxxb 2023-03-02 20:46 采纳率: 55.6%
浏览 86
已结题

matlab如何隔行相加

比如以下矩阵,分成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
这种的,如何写循环呢谢谢

  • 写回答

5条回答 默认 最新

  • 凑热闹的小哥 2023-03-02 21:39
    关注

    可以使用循环来实现矩阵的隔行相加,具体的方法如下:

    % 定义原始矩阵
    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个子矩阵的隔行相加的结果。循环的过程中,首先计算出当前子矩阵的起始行号和结束行号,然后取出当前子矩阵,最后将当前子矩阵的每一行累加到累加矩阵中即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日
  • 已采纳回答 3月2日
  • 修改了问题 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题