Main Content

nanmean

(不推荐)均值,忽略 NaN

不推荐使用 nanmean。请改用 MATLAB® 函数 mean。使用 mean 函数,您可以指定在计算时是包括还是省略 NaN 值。有关详细信息,请参阅兼容性注意事项

说明

示例

y = nanmean(X) 返回 X 的元素的 mean,在删除所有 NaN 值后进行计算。

  • 如果 X 是向量,则 nanmean(X)X 的所有非 NaN 元素的均值。

  • 如果 X 是矩阵,则 nanmean(X) 是列均值组成的行向量,在删除 NaN 值后计算。

  • 如果 X 是多维数组,则 nanmean 沿 X 的第一个非单一维度执行运算。此维度的大小变为 1,而所有其他维度的大小保持不变。nanmean 删除所有 NaN 值。

有关 nanmean 如何处理包含的值全为 NaN 的数组的信息,请参阅提示

示例

y = nanmean(X,'all') 返回 X 的所有元素的均值,在删除 NaN 值后计算。

示例

y = nanmean(X,dim) 返回沿 X 的运算维度 dim 的均值,在删除 NaN 值后计算。

示例

y = nanmean(X,vecdim) 基于向量 vecdim 所指定的维度返回均值。该函数在删除 NaN 值后计算均值。例如,如果 X 是矩阵,则 nanmean(X,[1 2])X 中所有非 NaN 元素的均值,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。

示例

全部折叠

求具有缺失值的矩阵数据的列均值。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanmean(X)
y = 1×3

    3.5000    3.0000       NaN

计算一个数组中所有值的均值,忽略缺失值。

创建一个包含一些缺失值的 2×5×3 数组 X

X = reshape(1:30,[2 5 3]);
X([10:12 25]) = NaN
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8   NaN


X(:,:,2) =

   NaN    13    15    17    19
   NaN    14    16    18    20


X(:,:,3) =

    21    23   NaN    27    29
    22    24    26    28    30

X 的元素的均值。

y = nanmean(X,'all')
y = 15.6538

通过指定沿第二个维度计算均值,求具有缺失值的矩阵数据的行均值。

X = magic(3);
X([1 6:9]) = NaN
X = 3×3

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanmean(X,2)
y = 3×1

     1
     4
     4

求一个基于多个维度的多维数组的均值。

创建一个包含一些缺失值的 2×5×3 数组 X

X = reshape(1:30,[2 5 3]);
X([10:12 25]) = NaN
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8   NaN


X(:,:,2) =

   NaN    13    15    17    19
   NaN    14    16    18    20


X(:,:,3) =

    21    23   NaN    27    29
    22    24    26    28    30

通过将维度 1 和 2 指定为运算维度,找出 X 的每页的均值。

ypage = nanmean(X,[1 2])
ypage = 
ypage(:,:,1) =

     5


ypage(:,:,2) =

   16.5000


ypage(:,:,3) =

   25.5556

例如,ypage(1,1,1)X(:,:,1) 中非 NaN 元素的均值。

通过将维度 2 和 3 指定为运算维度,找出每个 X(i,:,:) 切片中元素的均值。

yrow = nanmean(X,[2 3])
yrow = 2×1

   14.5385
   16.7692

例如,yrow(2)X(2,:,:) 中非 NaN 元素的均值。

输入参数

全部折叠

输入数据,指定为标量、向量、矩阵或多维数组。

如果 X 是空数组,则 nanmean(X)NaN。有关详细信息,请参阅提示

数据类型: single | double

用于运算的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。

dim 表示其长度减小到 1 的维度。size(y,dim) 为 1,而所有其他维度的大小保持不变。

假设有一个二维数组 X

  • 如果 dim 等于 1,则 nanmean(X,1) 返回包含每列的均值的行向量。

  • 如果 dim 等于 2,则 nanmean(X,2) 返回包含每行的均值的列向量。

如果 dim 大于 ndims(X)size(X,dim) 为 1,则 nanmean 返回 X

数据类型: single | double

维度向量,指定为正整数向量。vecdim 的每个元素表示输入数组 X 的一个维度。输出 y 的指定运算维度长度为 1。Xy 的其他维度长度相同。

例如,如果 X 为 2×3×3 数组,则 nanmean(X,[1 2]) 返回 1×1×3 数组。输出的每个元素是 X 的对应页上的元素的均值。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

数据类型: single | double

输出参数

全部折叠

均值,以标量、向量、矩阵或多维数组形式返回。

提示

  • nanmean 计算全部由 NaN 值组成的数组的均值时,一旦 NaN 值被删除,则数组为空,因此其余元素的总和为 0。由于均值计算涉及除以 0,因此均值为 NaN。输出 NaN 不是 NaN 值的均值。

扩展功能

版本历史记录

在 R2006a 之前推出

全部折叠

R2020b: 不推荐使用 nanmean

不推荐使用 nanmean。请改用 MATLAB 函数 mean。目前没有删除 nanmean 的计划。

要更新您的代码,请将函数名称 nanmean 的实例更改为 mean。然后为 nanflag 输入参数指定 'omitnan' 选项。

nanmean 函数相比,mean 函数具有以下优势:

  • mean 提供更多扩展功能,支持 tall 数组、GPU 数组、分布数组、C/C++ 代码生成和 GPU 代码生成。

  • mean 返回具有指定数据类型的输出值。

另请参阅

|