如何平均绘图中的值,以创建具有较少值的绘图

时间:2015-06-10 09:23:09

标签: matlab plot

我有一个脚本,以24小时为单位,以分钟为单位绘制风速,单位为m / s(每秒测量一次)。我想制作一个新的情节,而不是每秒绘制风速,在10分钟内平均风速,然后将其与时间进行对比。

以下是我的数据的示例图片:

sample data

关于我如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:4)

您可以使用m.s.建议的smooth功能使用移动平均线滤镜。在评论中。这很简单:

y = smooth(x,span);

这使用对称平滑滤波器,因此跨度(即平滑所需的样本数)必须为奇数:在当前样本之后加上当前样本加nn之后。这样你每秒仍然有一个样本,它们只是平滑以减少噪音和测量误差。

如果您想减少点数,例如每10分钟只存在一个点,您可以执行以下操作:您获取向量的第一个10min * 60s = 600样本并将它们放在第一列中一个新的矩阵。然后取下600个样品并将它们放入第二列,依此类推。现在,您可以按列方式取矩阵的均值。这样你就有了一个新的向量,其中每个元素都是600个样本的平均值。

在MATLAB中,这很容易实现:

X = reshape(x,600,[]);    % create matrix with 600 elements per column
y = mean(X,1);            % take column-wise mean