TOTAL Function
Sums the elements of an input
enabled.
Usage
result = TOTAL(array)
Input Parameters
array—The array that is totalled. Can be of any data type except string.
Returned Value
result—A scalar value equal to the sum of all the elements of array. If the Dimension keyword is used, then result has the structure of the input array, but with the specified dimensions collapsed. If the Dimension keyword is used and array is a scalar value, the return value is also a scalar.
Keywords
Dimension—A scalar or array of integers (n ³ 0) that specifies the dimension(s) over which to operate.
Use_Double—If the Use_Double keyword is set then the return value from total is of double data type.
Use_Long—If the Use_Long keyword is set then the return value from total is a long.
Discussion
If array is of double-precision floating-point or complex data type, the result is of the same type. If array is any other data type, TOTAL returns single-precision floating-point.
The Dimension keyword lets you sum the elements across one or more dimensions of the input array. The following examples best illustrate the use of Dimension.
Example 1
In this example, TOTAL is used to compute the sums of all elements in various rows and columns of a 3-by-2 integer array.
; Create a 3-by-2 integer array. Each element has a value
; equal to its one-dimensional subscript.
a = INDGEN(3, 2)
PM, a
; PV-WAVE prints the following:
; 0 3
; 1 4
; 2 5
PRINT, "The sum of the elements in the first column:"
PM, TOTAL(a(*, 0))
; PV-WAVE prints: 3.00000
PRINT, "The sum of the elements in the second row:"
PM, TOTAL(a(1, *))
; PV-WAVE prints: 5.00000
PRINT, "The sum of all elements in the array:"
PM, TOTAL(a)
; PV-WAVE prints: 15.0000
PRINT, "The sum of elements across dimension 0:"
PM, TOTAL(a, Dimension=0)
; PV-WAVE prints the following:
; 3.0000 12.0000
PRINT, "The sum of elements across dimension 1:"
PM, TOTAL(a, Dimension=1)
; PV-WAVE prints:
; 3.00000
; 5.00000
; 7.00000
PRINT, "The sum of elements on the diagonal:"
PM, TOTAL(a, Dimension=[0, 1])
; PV-WAVE prints: 4.00000
Example 2
a = INDGEN(4, 4) & PM, a
; PV-WAVE prints the following:
; 0 4 8 12
; 1 5 9 13
; 2 6 10 14
; 3 7 11 15
PM, TOTAL(a, Dim=0)
; PV-WAVE prints: 6.00000 22.0000 38.0000 54.0000
PM, TOTAL(a, Dim=1)
; PV-WAVE prints the following:
; 24.0000
; 28.0000
; 32.0000
; 36.0000
PM, TOTAL(a, Dim=[0,1])
; PV-WAVE prints: 30.0000
a = INDGEN(2, 2, 4) & PM, a
; PV-WAVE prints the following:
; 0 2
; 1 3
; 4 6
; 5 7
; 8 10
; 9 11
; 12 14
; 13 15
PM, TOTAL(a, Dim=2)
; PV-WAVE prints the following:
; 24.0000 32.0000
; 28.0000 36.0000
PM, TOTAL(a, Dim=[0,1])
; PV-WAVE prints the following:
; 3.00000
; 11.0000
; 19.0000
; 27.0000
a = INTARR(5, 10, 5, 10, 5)
INFO, TOTAL(a, Dim=1)
; PV-WAVE Prints: <Expression> FLOAT = Array(5, 1, 5, 10, 5)
INFO, TOTAL(a, Dim=[0,2])
; PV-WAVE Prints: <Expression> FLOAT = Array(1, 10, 1, 10, 5)