问题描述
我有一个地区 30 天的 sst 数据。但是漏掉了部分每日(几天)的数据,如下图所示。所以,我想计算这 30 天这些获得的 sst 数据的平均值。因为错过了一些日子。
我想知道如何计算这 30 天的平均 sst 值?我的数据是 .mat 格式。
例如,是否有任何函数(在 Matlab 或 Python 中)即使丢失了某些数据也可以用来计算平均值?
注意:“NaN”表示丢失的数据。
提前致谢!
解决方法
只需使用 mean() 函数的 'omitnan' 标志。
% Random input array
x = rand(30,1);
% Insert a random number of NaNs in the array
nNaN = randi(30,1);
idx = randi(30,[nNaN,1]);
x(unique(idx)) = NaN;
% Calculate the average
xav = mean(x,'omitnan');