我有一个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中做到这一点
答案 0 :(得分:10)
我认为这是一种使用索引的好方法
A([1, 1:end], [1, 1:end])
答案 1 :(得分:2)
你可以通过连接原始矩阵的不同部分来做到这一点:
B=[A(1) A(1,:);A(:,1) A];
在这个表达式中,A(1)是A的左上角元素,A(1,:)是第一行,A(:,1)是第一列。
请参阅colon operator上的文档。
答案 2 :(得分:1)
在下面的代码中,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]
答案 3 :(得分:1)
游戏有点晚,但值得回答。您可以使用padarray
:
B = padarray(A,[1 1],'replicate','pre')
如果您想添加的不仅仅是一个第一列和第一列,那么这是一个单行且更通用的...