【发布时间】: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)];吗?
如何在第一/第二行或第一/第二列之间专门添加?
【问题讨论】:
我有以下矩阵:
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)];吗?
如何在第一/第二行或第一/第二列之间专门添加?
【问题讨论】:
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,:)];
【讨论】:
考虑
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) ];
【讨论】: