我有以下矩阵:
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)];
?
我如何在第一/第二行或第一/第二列之间专门添加?
答案 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,:)];