1.首先生成一组测试矩阵
A=magic(5);
得到一个5*5的矩阵:
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
2.对角线置零
A=A-diag(diag(A));
得到如下矩阵:
A =
0 24 1 8 15
23 0 7 14 16
4 6 0 20 22
10 12 19 0 3
11 18 25 2 0
3.对角线置inf
对角线为正的inf
A=A+diag(inf+zeros(1,length(A)))
A =
Inf 24 1 8 15
23 Inf 7 14 16
4 6 Inf 20 22
10 12 19 Inf 3
11 18 25 2 Inf
对角线为负的inf
A=A-diag(inf+zeros(1,length(A)))
A = -Inf 24 1 8 15 23 -Inf 7 14 16 4 6 -Inf 20 22 10 12 19 -Inf 3 11 18 25 2 -Inf
4.对角线置NaN
A=A+diag(NaN+zeros(1,length(A))) 或者是
A=A+diag(inf+zeros(1,length(A)))-diag(inf+zeros(1,length(A)))
都可以使得对角线为NaN
A =
NaN 24 1 8 15
23 NaN 7 14 16
4 6 NaN 20 22
10 12 19 NaN 3
11 18 25 2 NaN
5.对角线为任意数值,这个目前好像只能是双循环解决了 即i=j的时候就是对角线,x是我们想要赋值的任意值 for i=1:length(A) for j=1:length(A) if i==j A=x; end endend
|