【问题标题】:taking moving average by matlab用matlab取移动平均线
【发布时间】:2013-07-17 07:21:39
【问题描述】:

我在分析数据时遇到了一些问题: 假设有一个矩阵

year month flow
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  2   34
72  2   43
72  2   55

现在我想取起始 10 个值的平均值,然后取接下来的 10 个值,依此类推。在这。基本上我想取每个月 10 天的流量值的平均值,比如从 1972 年 1 月 1 日到 1 月 10 日、72 日(第 10 行),而不是 1972 年 1 月 11 日到 1972 年 1 月 20 日,因为我试过了

[unX,~,subs] = unique(D(:,1:2),'rows');
out          = [unX accumarray(subs,D(:,3),[],@nanmean)]; 

但由于它给出了整个 jan 的平均值(第 2 列中的 1 个值),我只想在前十天使用它,然后以此类推

任何帮助将不胜感激。

【问题讨论】:

标签: matlab average


【解决方案1】:

您可以用自定义函数替换nanmean

 >> out = [unX accumarray(subs,D(:,3),[],@(x) nanmean( x(1:10)  ) )]; 

【讨论】:

    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2013-12-22
    • 1970-01-01
    • 2022-01-26
    • 2011-06-29
    • 2019-04-24
    相关资源
    最近更新 更多