【问题标题】:Adding rows/ columns to existing matrix向现有矩阵添加行/列
【发布时间】:2016-05-07 11:39:12
【问题描述】:

我有以下矩阵:

a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405];

如果我想添加一行,会是a = [a; randi(99, 1, 5)];吗? 如果我还想添加一列会是a = [a, randi(99, 4, 1)];吗?

如何在第一/第二行或第一/第二列之间专门添加?

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405]; 是一个 3×5 矩阵。因此,如果要添加一行,则需要添加一个 5 位数的行,即 a = [a; randi(99, 1, 5)]; 是正确的。对于一列,它是a = [a, randi(99, 3, 1)];,我用3 替换了你的4 以使其作用于初始矩阵。更好的是隐式使用大小,这样您就不必每次都手动增加行数/列数:

    a = [a; randi(99,1,size(a,2))]; %// adding a row
    a = [a, randi(99,size(a,1),1)]; %// adding a column
    

    如果您想在第一行和第二行之间插入新行:

    a = [a(1,:);  randi(99,1,size(a,2)); a(2:end,:)];
    

    【讨论】:

      【解决方案2】:

      考虑

      a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405];
      

      ith行之前输入:

      a = [ a(1:i-1,:) ; randi(99,1,5) ; a(i:end,:) ];
      

      ith列之前输入:

      a = [ a(:,1:i-1) , randi(99,4,1) , a(:,i:end) ];
      

      【讨论】:

        猜你喜欢
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 2011-12-22
        • 2014-07-06
        • 2015-03-03
        • 1970-01-01
        相关资源
        最近更新 更多