nat*_*rov 3 matlab sum matrix diagonal
我有一个像A这样的矩阵,我想计算这个矩阵的每个对角线的总和,并在像Y这样的向量中显示它.
A=[1 2 3; 4 5 6; 7 8 9]
Y=[3 8 15 12 7]
Run Code Online (Sandbox Code Playgroud)
我知道代码
[sum(diag(y,2)),sum(diag(y,1)),sum(diag(y,0)),sum(diag (y,-1)),sum(diag (y,-2))]
Run Code Online (Sandbox Code Playgroud)
但我想把它写成一个函数.
spdiags 可以做你想要的:
dsum = sum(spdiags(A))
Run Code Online (Sandbox Code Playgroud)
您可以使用反转向量fliplr并创建一个函数:
function dsum = diagsum(A)
dsum = fliplr(sum(spdiags(A)));
end
Run Code Online (Sandbox Code Playgroud)
结果
dsum =
3 8 15 12 7
Run Code Online (Sandbox Code Playgroud)