【技巧】matlab中nanmedian、nanmean和median、mean的区别

近日,在统计时间序列中位数(median)和均值(mean)时遇到一些小问题,导致得到的结果总是不理想。后来发现是由于没有考虑到数据中空值(NaN)的原因,特此记录,以免日后再犯同样的错误。

通过matlab的帮助文档,首先了解mean和median的概念:

median:
①M = median(A)
②M = median(A,‘all’)
③M = median(A,dim)

示例①
M = median(A) 返回 A 的中位数值。

如果 A 为向量,则 median(A) 返回 A 的中位数值。

如果 A 为非空矩阵,则 median(A) 是包含每一列的中位数值的行向量
median(A( : ))返回该二维数组的中位数
如果 A 为 0×0 空矩阵,median(A) 返回 NaN。

示例②
M = median(A,‘all’) 计算 A 的所有元素的中位数。此语法适用于 MATLAB® R2018b 及更高版本。

示例③
M = median(A,dim) 返回维度 dim 上元素的中位数。例如,如果 A 为矩阵,则 median(A,2) 是包含每一行的中位数值的列向量

mean:
①M = mean(A)
②M = mean(A,‘all’)
③M = mean(A,dim)

说明
示例①
M = mean(A) 返回 A 沿大小不等于 1 的第一个数组维度的元素的均值。

如果 A 是向量,则 mean(A) 返回元素均值。

如果 A 为矩阵,那么 mean(A) 返回包含每列均值的行向量
mean(A( : ))返回该二维数组的均值
如果 A 是多维数组,则 mean(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度会变为 1,而所有其他维度的大小保持不变。

示例②
M = mean(A,‘all’) 计算 A 的所有元素的均值。此语法适用于 MATLAB® R2018b 及更高版本。

示例③
M = mean(A,dim) 返回维度 dim 上的均值。例如,如果 A 为矩阵,则 mean(A,2) 是包含每一行均值的列向量。

nanmedian 和nanmean
nanmedian和nanmean在计算前先剔除掉了数组内的NaN值。只有有值的数据参与计算,具体示意图如下:

在这里插入图片描述

在这里插入图片描述

ps:nansum、nanmax、nanmin也是一样的原理,在数组有NaN值时,不能直接使用sum、max、min,否则得到的结果也是NaN。

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ls_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值