Main Content

mean

Average or mean value of array

Description

M = mean(A) returns the mean of the elements of A along the first array dimension whose size does not equal 1.

  • If A is a vector, then mean(A) returns the mean of the elements.

  • If A is a matrix, then mean(A) returns a row vector containing the mean of each column.

  • If A is a multidimensional array, then mean(A) operates along the first array dimension whose size does not equal 1, treating the elements as vectors. The size of M in this dimension becomes 1, while the sizes of all other dimensions remain the same as in A.

  • If A is a table or timetable, then mean(A) returns a one-row table containing the mean of each variable. (since R2023a)

example

M = mean(A,"all") returns the mean over all elements of A.

example

M = mean(A,dim) returns the mean along dimension dim. For example, if A is a matrix, then mean(A,2) returns a column vector containing the mean of each row.

example

M = mean(A,vecdim) returns the mean based on the dimensions specified in the vector vecdim. For example, if A is a matrix, then mean(A,[1 2]) returns the mean of all elements in A because every element of a matrix is contained in the array slice defined by dimensions 1 and 2.

example

M = mean(___,outtype) returns the mean with a specified data type for any of the previous syntaxes. outtype can be "default", "double", or "native".

example

M = mean(___,missingflag) specifies whether to include or omit missing values in A. For example, mean(A,"omitmissing") ignores all missing values when computing the mean. By default, mean includes missing values.

example

M = mean(___,Weights=W) specifies a weighting scheme W and returns the weighted mean. (since R2024a)

example

Examples

collapse all

Create a matrix and compute the mean of each column.

A = [0 1 1; 2 3 2; 1 3 2; 4 2 2]
A = 4×3

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

M = mean(A)
M = 1×3

    1.7500    2.2500    1.7500

Create a matrix and compute the mean of each row.

A = [0 1 1; 2 3 2; 3 0 1; 1 2 3]
A = 4×3

     0     1     1
     2     3     2
     3     0     1
     1     2     3

M = mean(A,2)
M = 4×1

    0.6667
    2.3333
    1.3333
    2.0000

Create a 4-by-2-by-3 array of integers between 1 and 10 and compute the mean values along the second dimension.

rng('default')
A = randi(10,[4,2,3]);
M = mean(A,2)
M = 
M(:,:,1) =

    8.0000
    5.5000
    2.5000
    8.0000


M(:,:,2) =

   10.0000
    7.5000
    5.5000
    6.0000


M(:,:,3) =

    6.0000
    5.5000
    8.5000
   10.0000

Create a 3-D array and compute the mean 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];
M1 = mean(A,[1 2])
M1 = 
M1(:,:,1) =

    1.2500


M1(:,:,2) =

     6


M1(:,:,3) =

    3.2500

To compute the mean over all dimensions of an array, you can either specify each dimension in the vector dimension argument, or use the "all" option.

M2 = mean(A,[1 2 3])
M2 = 
3.5000
Mall = mean(A,"all")
Mall = 
3.5000

Create a single-precision vector of ones and compute its single-precision mean.

A = single(ones(10,1));
M = mean(A,"native")
M = single

1

The result is also in single precision.

class(M)
ans = 
'single'

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 mean values of the matrix, excluding missing values. For matrix columns that contain any NaN value, mean computes with the non-NaN elements. For matrix columns that contain all NaN values, the mean is NaN.

M = mean(A,"omitnan")
M = 1×4

    1.7700    0.1675       NaN   -1.3800

Since R2024a

Create a matrix and compute the weighted mean of the matrix according to a weighting scheme specified by W. The mean function applies the weighting scheme to each column in A.

A = [1 1; 7 9; 1 9; 1 9; 6 2];
W = [1 2 1 2 3]';
M = mean(A,Weights=W)
M = 1×2

    4.0000    5.7778

Input Arguments

collapse all

Input data, specified as a vector, matrix, multidimensional array, table, or timetable.

  • If A is a scalar, then mean(A) returns A.

  • If A is an empty 0-by-0 matrix, then mean(A) returns NaN.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration | table | timetable

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 whose size does not equal 1.

Dimension dim indicates the dimension whose length reduces to 1. The size(M,dim) is 1, while the sizes of all other dimensions remain the same.

Consider an m-by-n input matrix, A:

  • mean(A,1) computes the mean of the elements in each column of A and returns a 1-by-n row vector.

    mean(A,1) column-wise operation

  • mean(A,2) computes the mean of the elements in each row of A and returns an m-by-1 column vector.

    mean(A,2) row-wise operation

mean returns A when dim is greater than ndims(A) or when size(A,dim) is 1.

Vector of dimensions, specified as a vector of positive integers. Each element represents a dimension of the input data. 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 data, A. Then mean(A,[1 2]) returns a 1-by-1-by-3 array whose elements are the means over each page of A.

Mapping of a 2-by-3-by-3 input data to a 1-by-1-by-3 output array

Output data type, specified as one of the values in this table. These options also specify the data type in which the operation is performed.

outtypeOutput data type
"default"double, unless the input data type is single, duration, datetime, table, or timetable, in which case, the output is "native"
"double"double, unless the data input type is duration, datetime, table, or timetable, in which case, "double" is not supported
"native"

Same data type as the input, unless:

  • Input data type is logical, in which case, the output is double

  • Input data type is char, in which case, "native" is not supported

  • Input data type is timetable, in which case, the output is table

Missing value condition, specified as one of the values in this table.

ValueInput Data TypeDescription
"includemissing"All supported data types

Include missing values in A when computing the mean. If any element in the operating dimension is missing, then the corresponding element in M is missing.

"includenan"double, single, duration
"includenat"datetime
"omitmissing"All supported data typesIgnore missing values in A, and compute the mean over fewer points. If all elements in the operating dimension are missing, then the corresponding element in M is missing.
"omitnan"double, single, duration
"omitnat"datetime

Since R2024a

Weighting scheme, specified as a vector, matrix, or multidimensional array. The elements of W must be nonnegative.

If you specify a weighting scheme, mean returns the weighted mean, which is useful when values in the input data have different levels of importance or the input data is skewed.

If W is a vector, it must have the same length as the operating dimension. Otherwise, W must have the same size as the input data.

If the input data A is a table or timetable, then W must be a vector.

You cannot specify this argument if you specify vecdim or "all".

Data Types: double | single

More About

collapse all

Mean

For a finite-length vector A made up of N scalar observations, the mean is defined as

μ=1Ni=1NAi.

Weighted Mean

For a finite-length vector A made up of N scalar observations and weighting scheme W, the weighted mean is defined as

μW=i=1NWiAii=1NWi.

Extended Capabilities

Version History

Introduced before R2006a

expand all

See Also

Functions