Sum of elements below main diagonal of matrix: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
(julia example)
Line 11: Line 11:
[7,1,3,9,5]]
[7,1,3,9,5]]
<br><br>
<br><br>

=={{header|Julia}}==
The `tril` function is part of Julia's builtin LinearAlgebra package. `tril(A)` includes the main diagonal and
the components of the matrix `A` to the right and above the main diagonal. `tril(A, -1)` returns the lower triangular
elements of `A`, which excludes the main diagonal.
<lang julia>using LinearAlgebra

A = [ 1 3 7 8 10;
2 4 16 14 4;
3 1 9 18 11;
12 14 17 18 20;
7 1 3 9 5]

@show tril(A)

@show tril(A, -1)

@show sum(tril(A, -1)) # 69
</lang>{{out}}<pre>
tril(A) = [1 0 0 0 0; 2 4 0 0 0; 3 1 9 0 0; 12 14 17 18 0; 7 1 3 9 5]
tril(A, -1) = [0 0 0 0 0; 2 0 0 0 0; 3 1 0 0 0; 12 14 17 0 0; 7 1 3 9 0]
sum(tril(A, -1)) = 69
</pre>


=={{header|Ring}}==
=={{header|Ring}}==

Revision as of 06:43, 20 July 2021

Sum of elements below main diagonal of matrix is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Task
Find sum of elements below main diagonal of matrix.


The matrix should be square matrix.

Matrix =

   [[1,3,7,8,10],
    [2,4,16,14,4],
    [3,1,9,18,11],
    [12,14,17,18,20],
    [7,1,3,9,5]]



Julia

The `tril` function is part of Julia's builtin LinearAlgebra package. `tril(A)` includes the main diagonal and the components of the matrix `A` to the right and above the main diagonal. `tril(A, -1)` returns the lower triangular elements of `A`, which excludes the main diagonal. <lang julia>using LinearAlgebra

A = [ 1 3 7 8 10;

     2  4 16 14  4;
     3  1  9 18 11;
    12 14 17 18 20;
     7  1  3  9  5]

@show tril(A)

@show tril(A, -1)

@show sum(tril(A, -1)) # 69

</lang>

Output:

tril(A) = [1 0 0 0 0; 2 4 0 0 0; 3 1 9 0 0; 12 14 17 18 0; 7 1 3 9 5] tril(A, -1) = [0 0 0 0 0; 2 0 0 0 0; 3 1 0 0 0; 12 14 17 0 0; 7 1 3 9 0] sum(tril(A, -1)) = 69

Ring

<lang ring> see "working..." + nl see "Sum of elements below main diagonal of matrix:" + nl diag = [[1,3,7,8,10],

       [2,4,16,14,4],
       [3,1,9,18,11],
       [12,14,17,18,20],
       [7,1,3,9,5]]

lenDiag = len(diag) ind = lenDiag sumDiag = 0

for n=1 to lenDiag

   for m=1 to lenDiag-ind
       sumDiag += diag[n][m]
   next
   ind--

next

see "" + sumDiag + nl see "done..." + nl </lang>

Output:
working...
Sum of elements below main diagonal of matrix:
69
done...