我有一个矩阵,例如
[1 1 1
1 1 1
1 1 1]
我希望它是
[2 1 1
1 2 1
1 1 2]
我怎么做?
使用eye
函数获取单位矩阵并添加到原始矩阵
result = A+eye(3,3) ; % A the original matrix
通过逻辑索引的另一种方式:
idx = eye(size(A))>0;
A(idx)= A(idx)+1;
这也可以很容易地用于其他事情:
A(~idx)=2*A(~idx); %Multiply all non diagonal elements by two
A(eye(size(A))>0)=1:min(size(A)); %Set the diagonal to 1:n