复制矩阵的第一行和第一列

问题描述 投票:1回答:4

我有一个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中做到这一点

matlab matrix
4个回答
10
投票

我认为这是一种使用索引的好方法

A([1, 1:end], [1, 1:end])

2
投票

你可以通过连接原始矩阵的不同部分来做到这一点:

B=[A(1) A(1,:);A(:,1) A];

在这个表达式中,A(1)是A的左上角元素,A(1,:)是第一行,A(:,1)是第一列。

请参阅colon operator上的文档。


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]

1
投票

游戏有点晚,但值得回答。您可以使用padarray

B = padarray(A,[1 1],'replicate','pre')

如果您想要添加的不仅仅是单个第一列和列,那么它是一个单行且更通用的...

© www.soinside.com 2019 - 2024. All rights reserved.