主要内容

nanmedian

(不推荐)中位数,忽略 NaN

不推荐使用 nanmedian。请改用 MATLAB® 函数 median。使用 median 函数,您可以指定在计算时是包括还是省略 NaN 值。有关详细信息,请参阅版本历史记录

说明

y = nanmedian(X)Xmedian,是在删除 NaN 值后进行计算的。

对于向量 xnanmedian(x) 是删除 NaN 值后其余元素的中位数。对于矩阵 Xnanmedian(X) 是由列中位数组成的行向量,是在删除 NaN 值后进行计算的。对于多维数组Xnanmedian 沿第一个非单一维度进行运算。

示例

y = nanmedian(X,'all') 返回 X 的所有元素的中位数,是在删除 NaN 值后进行计算的。

y = nanmedian(X,dim) 沿 X 的运算维度 dim 取中位数。

y = nanmedian(X,vecdim) 返回在向量 vecdim 中指定的维度上的中位数,是在删除 NaN 值后进行计算的。vecdim 的每个元素表示输入数组 X 的一个维度。输出 y 在指定运算维度中的长度为 1。Xy 的其他维度长度相同。例如,如果 X 是 2×3×4 数组,则 nanmedian(X,[1 2]) 返回 1×1×4 数组。输出数组的每个元素均为 X 的对应页上的元素的中位数。

示例

示例

全部折叠

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

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

   NaN     1   NaN
     3     5   NaN
     4   NaN   NaN

y = nanmedian(X)
y = 1×3

    3.5000    3.0000       NaN

求多维数组在多个维度上的中位数。

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

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

     1     4     7   NaN    13
     2     5     8   NaN    14
     3     6     9   NaN    15


X(:,:,2) =

    16    19    22   NaN    28
    17    20    23    26    29
    18    21    24    27    30

通过将维度 1 和 2 指定为运算维度,求 X 的每页的中位数。

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

    6.5000


ypage(:,:,2) =

   22.5000

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

通过将维度 1 和 3 指定为运算维度,求每个 X(:,i,:) 切片中元素的中位数。

ycol = nanmedian(X,[1 3])
ycol = 1×5

    9.5000   12.5000   15.5000   26.5000   21.5000

例如,ycol(4)X(:,4,:) 中非 NaN 元素的中位数。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部折叠

另请参阅

|