我有一个3 * 3矩阵A
A = [1 2 3
4 5 6
7 8 9];
我想只复制这个矩阵的第一行和第一列。应该是这样的
1 1 2 3
1 1 2 3
4 4 5 6
7 7 8 9
谁能告诉我怎样才能在matlab中做到这一点
我认为这是一种使用索引的好方法
A([1, 1:end], [1, 1:end])
你可以通过连接原始矩阵的不同部分来做到这一点:
B=[A(1) A(1,:);A(:,1) A];
在这个表达式中,A(1)是A的左上角元素,A(1,:)是第一行,A(:,1)是第一列。
请参阅colon operator上的文档。
在下面的代码中,A是您的起点,我相信E是您想要实现的目标。
您当然可以将所有中间表达式组合在一起,以一步完成最终结果。
A= [1 2 3; 4 5 6; 7 8 9]
B= A(1:3,1:1)
C= [B A]
D= C(1:1,1:4)
E= [D;C]
游戏有点晚,但值得回答。您可以使用padarray
:
B = padarray(A,[1 1],'replicate','pre')
如果您想要添加的不仅仅是单个第一列和列,那么它是一个单行且更通用的...