如何计算矩阵nxn中两个对角线元素的总和,但要确保中间元素(如果有一个)在总和中不被计算两次。谢谢你!
这里有一种方法可以避免n
为奇数(中心条目不应该被计数两次)和n
为偶数(没有中心条目)的两种不同情况。它使用从单位矩阵及其反射构建的逻辑索引:
M = magic(5); % example data
ind = logical(eye(size(M))); % logical index for diagonal ...
ind = ind | flipud(ind); % ... and anti-diagonal
result = sum(M(ind)); % indexing with a logical index gives a vector