我有一个像a的矩阵,我想计算这个矩阵的每一个对角线的和,并用一个像Y的向量来表示。
A=[1 2 3; 4 5 6; 7 8 9]
Y=[3 8 15 12 7]
我知道密码
[sum(diag(y,2)),sum(diag(y,1)),sum(diag(y,0)),sum(diag (y,-1)),sum(diag (y,-2))]
但我想把它写成一个函数。
最佳答案
spdiags
可以随心所欲:
dsum = sum(spdiags(A))
可以使用
fliplr
反转向量并创建一个函数:function dsum = diagsum(A)
dsum = fliplr(sum(spdiags(A)));
end
结果
dsum =
3 8 15 12 7