【技巧】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。
溯水襄陵_: 注册账号,一注册就通过。
m0_48326862: 你好,请问你解决了吗,我也是有负值,在边界之外
hlyss_: 请问您知道哪里能下载到nc的气温数据么
念旧.867: 我也是遇到这个问题,请问你解决了吗
weixin_54348000: 老师,请问有全球的MCD12Q1.006的数据吗?