假设我有一个矩阵 A,我想得到矩阵[A 0; 0 1]
。是否有内置功能可以做到这一点?
所以如果我的矩阵是[2 3; 1 4]
,我会回来[2 3 0; 1 4 0; 0 0 1]
假设我有一个矩阵 A,我想得到矩阵[A 0; 0 1]
。是否有内置功能可以做到这一点?
所以如果我的矩阵是[2 3; 1 4]
,我会回来[2 3 0; 1 4 0; 0 0 1]
最简单的方法是:
newA = A;
newA(end+1,end+1) = 1;
这是有效的,因为您可以在数组外部进行索引以进行赋值,因为end
指示最后一个元素(此处为行和列),并且因为当您增加数组时,Matlab 用零填充。如果你只是想成长A
,你甚至可以跳过创造newA
,当然。
我总是使用矩阵连接来解决这样的问题
所以对于你的例子:
A = [2 3; 1 4]
A = [A A(:,1)*0; A(1,:)*0 1]
生产
A =
2 3 0
1 4 0
0 0 1
这个技巧的好处是它非常灵活,你可以很容易地进行各种转换。例如
A = [2 3; 1 4]
A = [1 A(1,:)*0; A(:,1)*0 A]
生产
A =
1 0 0
0 2 3
0 1 4