将行/列添加到现有矩阵

时间:2016-05-07 11:39:13

标签: matlab matrix

我有以下矩阵:

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)];

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

2 个答案:

答案 0 :(得分:1)

考虑

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) ];

答案 1 :(得分: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)];,我将4替换为3,以使其作用于初始矩阵。更好的方法是隐式使用大小,这样你就不必每次都手动增加行数/列数:

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,:)];
相关问题