NCL Home > Documentation > Functions > General applied math, Statistics


Computes the sample standard deviation of a variable's rightmost dimension at all other dimensions.


	function dim_stddev (
		x  : numeric   

	return_val  :  float or double



A variable of numeric type and any dimensionality.

Return value

The output will be double if x is double, and float otherwise.

The output dimensionality is the same as the first n-2 dimensions of the input variable. That is, the dimension rank of the input variable will be reduced by one.


The dim_stddev function computes the sample standard deviation of all elements of the n-1 dimension for each index of the dimensions 0...n-2. Missing values are ignored.

Technically, this function calculates the sample standard deviation. This means that it divides by one less than the total number of non-missing values (1/(N-1)).

Use dim_stddev_n if you want to specify which dimension(s) to calculate the standard deviation on.

Use the dim_stddev_Wrap function if metadata retention is desired. The interface is identical.

See Also

dim_stddev_Wrap, dim_stddev_n_Wrap, stddev, dim_stddev_n, dim_avg, dim_median, dim_num, dim_product, dim_rmsd, dim_rmvmean, dim_rmvmed, dim_standardize, dim_stat4, dim_sum, dim_variance


Example 1

Create a variable q of size (3,5,10) array. Then calculate the sample standard deviation of the rightmost dimension.

    q   = random_uniform(-20,100,(/3,5,10/))
    qStd= dim_stddev(q)   ;==>  qStd(3,5)

    ; Use dim_stddev_Wrap if metadata retention is desired
    ; qStd= dim_stddev_Wrap(q)   ;==>  qStd(3,5)
Example 2

Let x be of size (ntim,nlat,mlon) and with named dimensions "time", "lat" and "lon", respectively. Then, for each time and latitude, the the standard deviation is:

    xStdLon= dim_stddev( x )    ; ==> xStdLon(ntim,nlat)

    ; Use dim_stddev_Wrap if metadata retention is desired
    ; xStdLon = dim_stddev_Wrap( x )    ; ==> xStdLon(time,lat)
Example 3

Let x be defined as in Example 2: x(time,lat,lon). Compute the temporal standard deviation at each latitude/longitude grid point. Use NCL's named subscripting to reorder the input array such that "time" is the rightmost dimension.

    xStdTime = dim_stddev( x(lat|:, lon|:, time|:) )    ; ==> xStdTime(nlat,nlon)

    ; Use dim_stddev_Wrap if metadata retention is desired
    ; xStdTime = dim_stddev_Wrap( \
    ;                                        x(lat|:, lon|:, time|:) )    ; ==> xStdTime(lat,lon)

    xStdTime = dim_stddev_n( x, 0 )                     ; no reordering needed

    ; Use dim_stddev_n_Wrap if metadata retention is desired
    ; xStdTime = dim_stddev_n_Wrap( x, 0 ) ; no reordering needed