Standard deviation
collapse all in page
Syntax
S = std(A)
S = std(A,w)
S = std(A,w,"all")
S = std(A,w,dim)
S = std(A,w,vecdim)
S = std(___,missingflag)
[S,M] = std(___)
Description
example
S = std(A)
returns the standard deviation of the elements of A
along the first array dimension whose size is greater than 1. By default, the standard deviation is normalized by N-1
, where N
is the number of observations.
If
A
is a vector of observations, thenS
is a scalar.If
A
is a matrix whose columns are random variables and whose rows are observations, thenS
is a row vector containing the standard deviation corresponding to each column.If
A
is a multidimensional array, thenstd(A)
operates along the first array dimension whose size is greater than 1, treating the elements as vectors. The size ofS
in this dimension becomes1
, while the sizes of all other dimensions are the same as inA
.If
A
is a scalar, thenS
is0
.If
A
is a0
-by-0
empty array, thenS
isNaN
.If
A
is a table or timetable, thenstd(A)
returns a one-row table containing the standard deviation of each variable. (since R2023a)
example
S = std(A,w)
specifies a weighting scheme. When w = 0
(default), the standard deviation is normalized by N-1
, where N
is the number of observations. When w = 1
, the standard deviation is normalized by the number of observations. w
also can be a weight vector containing nonnegative elements. In this case, the length of w
must equal the length of the dimension over which std
is operating.
S = std(A,w,
returns the standard deviation over all elements of "all"
)A
when w
is either 0 or 1.
example
S = std(A,w,dim)
returns the standard deviation along dimension dim
. To maintain the default normalization while specifying the dimension of operation, set w = 0
in the second argument.
example
S = std(A,w,vecdim)
returns the standard deviation over the dimensions specified in the vector vecdim
when w
is 0 or 1. For example, if A
is a matrix, then std(A,0,[1 2])
returns the standard deviation over all elements in A
because every element of a matrix is contained in the array slice defined by dimensions 1 and 2.
example
S = std(___,missingflag)
specifies whether to include or omit missing values in A
for any of the previous syntaxes. For example, std(A,"omitmissing")
ignores all missing values when computing the standard deviation. By default, std
includes missing values.
example
[S,M] = std(___)
also returns the mean of the elements of A
used to calculate the standard deviation. If S
is the weighted standard deviation, then M
is the weighted mean.
Examples
collapse all
Standard Deviation of Matrix Columns
Open Live Script
Create a matrix and compute the standard deviation of each column.
A = [4 -5 1; 2 3 5; -9 1 7];S = std(A)
S = 1×3 7.0000 4.1633 3.0551
Standard Deviation of 3-D Array
Open Live Script
Create a 3-D array and compute the standard deviation along the first dimension.
A(:,:,1) = [2 4; -2 1];A(:,:,2) = [9 13; -5 7];A(:,:,3) = [4 4; 8 -3];S = std(A)
S = S(:,:,1) = 2.8284 2.1213S(:,:,2) = 9.8995 4.2426S(:,:,3) = 2.8284 4.9497
Specify Standard Deviation Weights
Open Live Script
Create a matrix and compute the standard deviation of each column according to a weight vector w
.
A = [1 5; 3 7; -9 2];w = [1 1 0.5];S = std(A,w)
S = 1×2 4.4900 1.8330
Standard Deviation Along Matrix Rows
Open Live Script
Create a matrix and compute the standard deviation along each row.
A = [6 4 23 -3; 9 -10 4 11; 2 8 -5 1];S = std(A,0,2)
S = 3×1 11.0303 9.4692 5.3229
Standard Deviation of Array Page
Open Live Script
Create a 3-D array and compute the standard deviation over each page of data (rows and columns).
A(:,:,1) = [2 4; -2 1];A(:,:,2) = [9 13; -5 7];A(:,:,3) = [4 4; 8 -3];S = std(A,0,[1 2])
S = S(:,:,1) = 2.5000S(:,:,2) = 7.7460S(:,:,3) = 4.5735
Standard Deviation Excluding Missing Values
Open Live Script
Create a matrix containing NaN
values.
A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4 1.7700 -0.0050 NaN -2.9500 NaN 0.3400 NaN 0.1900
Compute the standard deviation of the matrix, excluding missing values. For matrix columns that contain any NaN
value, std
computes with the non-NaN
elements. For columns in A
that contain all NaN
values, the standard deviation is NaN
.
S = std(A,"omitmissing")
S = 1×4 0 0.2440 NaN 2.2203
Before R2023a: Use "omitnan"
or "omitnat"
to ignore missing values.
Standard Deviation and Mean
Open Live Script
Create a matrix and compute the standard deviation and mean of each column.
A = [4 -5 1; 2 3 5; -9 1 7];[S,M] = std(A)
S = 1×3 7.0000 4.1633 3.0551
M = 1×3 -1.0000 -0.3333 4.3333
Create a matrix and compute the weighted standard deviation and weighted mean of each column according to a weight vector w
.
A = [1 5; 3 7; -9 2];w = [1 1 0.5];[S,M] = std(A,w)
S = 1×2 4.4900 1.8330
M = 1×2 -0.2000 5.2000
Input Arguments
collapse all
A
— Input array
vector | matrix | multidimensional array | table | timetable
Input array, specified as a vector, matrix, multidimensional array, table, or timetable. If A
is a scalar, then std(A)
returns 0
. If A
is a 0
-by-0
empty array, then std(A)
returns NaN
.
Data Types: single
| double
| datetime
| duration
| table
| timetable
Complex Number Support: Yes
w
— Weight
0
(default) | 1
| vector
Weight, specified as one of these values:
0
— Normalize byN-1
, whereN
is the number of observations. If there is only one observation, then the weight is 1.1
— Normalize byN
.Vector made up of nonnegative scalar weights correspondingto the dimension of
A
along which the standarddeviation is calculated.
Data Types: single
| double
dim
— Dimension to operate along
positive integer scalar
Dimension to operate along, specified as a positive integer scalar. If you do not specify the dimension, then the default is the first array dimension of size greater than 1.
Dimension dim
indicates the dimension whoselength reduces to 1
. The size(S,dim)
is 1
,while the sizes of all other dimensions remain the same.
Consider an m
-by-n
input matrix, A
:
std(A,0,1)
computes the standard deviation of the elements in each column ofA
and returns a1
-by-n
row vector.std(A,0,2)
computes the standard deviation of the elements in each row ofA
and returns anm
-by-1
column vector.
If dim
is greater than ndims(A)
,then std(A)
returns an array of zeros the samesize as A
.
vecdim
— Vector of dimensions
vector of positive integers
Vector of dimensions, specified as a vector of positive integers. Each element represents a dimension of the input array. The lengths of the output in the specified operating dimensions are 1, while the others remain the same.
Consider a 2-by-3-by-3 input array, A
. Then std(A,0,[1 2])
returns a 1-by-1-by-3 array whose elements are the standard deviations computed over each page of A
.
missingflag
— Missing value condition
"includemissing"
(default) | "includenan"
| "includenat"
| "omitmissing"
| "omitnan"
| "omitnat"
Missing value condition, specified as one of the values in this table.
Value | Input Data Type | Description |
---|---|---|
"includemissing" (since R2023a) | All supported data types | Include missing values in |
"includenan" | double , single , duration | |
"includenat" | datetime | |
"omitmissing" (since R2023a) | All supported data types | Ignore missing values in A and w , and compute the standard deviation over fewer points. If all elements in the operating dimension are missing, then the corresponding element in S is missing. |
"omitnan" | double , single , duration | |
"omitnat" | datetime |
Output Arguments
collapse all
S
— Standard deviation
scalar | vector | matrix | multidimensional array | table
Standard deviation, returned as a scalar, vector, matrix, multidimensional array, or table
If
A
is a vector of observations, thenS
is a scalar.If
A
is a matrix whose columns are random variables and whose rows are observations, thenS
is a row vector containing the standard deviation corresponding to each column.If
A
is a multidimensional array, thenstd(A)
operates along the first array dimension whose size is not greater than 1, treating the elements as vectors. The size ofS
in this dimension becomes1
, while the sizes of all other dimensions are the same as inA
.If
A
is a scalar, thenS
is0
.If
A
is a0
-by-0
empty array, thenS
isNaN
.If
A
is a table or timetable, thenS
is a one-row table. (since R2023a)
M
— Mean
scalar | vector | matrix | multidimensional array | table
Mean, returned as a scalar, vector, matrix, multidimensional array, or table.
If
A
is a vector of observations, thenM
is a scalar.If
A
is a matrix whose columns are random variables and whose rows are observations, thenM
is a row vector containing the mean corresponding to each column.If
A
is a multidimensional array, thenstd(A)
operates along the first array dimension whose size is greater than 1, treating the elements as vectors. The size ofM
in this dimension becomes1
, while the sizes of all other dimensions are the same as inA
.If
A
is a scalar, thenM
is equal toA
.If
A
is a0
-by-0
empty array, thenM
isNaN
.If
A
is a table or timetable, thenM
is a one-row table. (since R2023a)
If S
is the weighted standard deviation, then M
is the weighted mean.
More About
collapse all
Standard Deviation
For a finite-length vector A made up of N scalar observations, the standard deviation is defined as
where μ is the mean of A:
The standard deviation is the square root of the variance.
Some definitions of standard deviation use a normalization factor N instead of N – 1. You can use a normalization factor of N by specifying a weight of 1
, producing the square root of the second moment of the sample about its mean.
Regardless of the normalization factor for the standard deviation, the mean is assumed to have the normalization factor N.
Weighted Standard Deviation
For a finite-length vector A made up of N scalar observations and weighting scheme w
, the weighted standard deviation is defined as
where μw is the weighted mean of A.
Weighted Mean
For a random variable vector A made up of N scalar observations and weighting scheme w
, the weighted mean is defined as
Extended Capabilities
Tall Arrays
Calculate with arrays that have more rows than fit in memory.
This function supports tall arrays with the limitation:
The weighting scheme cannot be a vector.
For more information, see Tall Arrays for Out-of-Memory Data.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
C++ code generation supports the following syntaxes:
S = std(A)
S = std(A,w)
S = std(A,w,"all")
S = std(A,w,dim)
S = std(A,w,vecdim)
S = std(__,missingflag)
When specified, dimension must be a constant.
See Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.
Usage notes and limitations:
GPU code generation supports the following syntaxes:
S = std(A)
S = std(A,w)
S = std(A,w,"all")
S = std(A,w,dim)
S = std(A,w,vecdim)
S = std(__,missingflag)
If you specify
dim
, then it must be a constant.
Thread-Based Environment
Run code in the background using MATLAB® backgroundPool
or accelerate code with Parallel Computing Toolbox™ ThreadPool
.
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Version History
Introduced before R2006a
expand all
R2023a: Perform calculations directly on tables and timetables
The std
function can calculate on all variables within a table or timetable without indexing to access those variables. All variables must have data types that support the calculation. For more information, see Direct Calculations on Tables and Timetables.
R2023a: Specify missing value condition
Include or omit all missing values in the input arrays when computing the standard deviation by using the "includemissing"
or "omitmissing"
options. Previously, "includenan"
, "omitnan"
, "includenat"
, and "omitnat"
specified a missing value condition that was specific to the data type of the input arrays.
R2023a: Improved performance with small group size
The std
function shows improved performance when computing over a real vector when the operating dimension is not specified. The function determines the default operating dimension more quickly in R2023a than in R2022b.
For example, this code computes the standard deviation along the default vector dimension. The code is about 1.9x faster than in the previous release.
function timingStdA = rand(10,1);for i = 1:8e5 std(A);endend
The approximate execution times are:
R2022b: 1.77 s
R2023a: 0.93 s
The code was timed on a Windows® 10, Intel® Xeon® CPU E5-1650 v4 @ 3.60 GHz test system using the timeit
function.
timeit(@timingStd)
R2022a: Return mean or weighted mean
The std
function can now return the mean of the input elements used to calculate the standard deviation by using a second output argument M
. If a weighting scheme is specified, then std
returns the weighted mean.
R2018b: Operate on multiple dimensions
Operate on multiple dimensions of the input array at a time. Specify a vector of operating dimensions, or specify the "all"
option to operate on all array dimensions.
See Also
corrcoef | cov | mean | median | var
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Contact your local office