1

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

4

4 回答 4

10

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

A([1, 1:end], [1, 1:end])
于 2013-10-16T12:54:51.500 回答
2

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

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

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

请参阅有关冒号运算符的文档。

于 2013-10-16T12:52:49.990 回答
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]
于 2013-10-16T12:52:27.800 回答
1

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

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

如果您想添加的不仅仅是一个第一个和列...

于 2013-10-16T17:55:28.020 回答