【发布时间】:2019-04-15 00:50:27
【问题描述】:
我有一个 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中做到这一点
【问题讨论】:
我有一个 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]
【讨论】:
1:3 可以只是:,然后1:4 也可以只是:
游戏有点晚了,但值得回答。您可以为此使用padarray:
B = padarray(A,[1 1],'replicate','pre')
如果您想添加的不仅仅是单个第一个和列,它是一个单行且更通用...
【讨论】: