在給李X寫SVD代碼的時候注意到的。
>> a = magic(3)
a =
8 1 6
3 5 7
4 9 2
>> diag(a)
ans =
8
5
2
>> a = [8 5 2]
a =
8 5 2
>> diag(a)
ans =
8 0 0
0 5 0
0 0 2
>> a = [8:5:2]
a =
Empty matrix: 1-by-0
>> a = [8;5;2]
a =
8
5
2
>> diag(a)
ans =
8 0 0
0 5 0
0 0 2
可以看出,如果A是矩陣,那么diag(A)得到的是列向量,如果A是行列向量,那么得到的是矩陣(對角有元素,其他事0),后者使我們需要的。