Sum of first row and column, then second row and column ... and so on
MATL, 16 bytes

&amp;n:w:!XlX:GX:1XQ


Try it online! Or verify all test cases.

Explanation

Consider, as an example, the input 

2   10   10    2    4
9    7    7    2    9
1    7    6    2    4
7    1    4    8    9


The code &amp;n:w:!Xl builds the column vector [1; 2; 3; 4] and the row vector [1 2 3 4 5]. Then Xl computes the minimum element-wise with broadcast, which gives the matrix

1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4


X: linearizes this matrix (in column-major order) into the column vector [1; 1; 1; 1; 1; 2; 2; ... ; 4]. This vector and the linearized input matrix, obtained as GX:, are passed as inputs to the accumarray(... @sum) function, or 1XQ. This computes the sum of the second input grouped by values of the first input.