【问题标题】:How to smooth in Octave?如何在八度中平滑?
【发布时间】:2014-10-15 15:59:33
【问题描述】:

我正在尝试让一段 MATLAB 代码在 Octave 中运行,但我遇到了问题:

xsm = smooth(x,0.03,'loess') 

这似乎没有等效的八度音阶。 x 只是一个由几千个实数组成的数组。

是否有任何 Octave 代码可以为我执行此操作,如果没有,我在哪里可以找到算法以便我可以编写自己的算法?如果我这样做,我如何将它贡献给 Octave?

【问题讨论】:

  • 文档说`将移动平均线的跨度设置为跨度。 span 关于第二个参数必须是奇怪的,不知道这应该做什么。 (mathworks.com/help/curvefit/smooth.html)
  • 你读过维基百科的文章了吗:en.wikipedia.org/wiki/Local_regression
  • 丹尼尔,这种“黄土”是一种比移动平均线更复杂的平滑类型。本,是的,我只是希望有人已经做到了!
  • @JohnLawrenceAspden:你是对的,这是文档的相关部分:“对于loess和lowess方法,span是数据点总数的百分比,小于或等于1 .", 0.03 是一个有效参数。
  • @Dan,这就是我正在寻找的答案。非常感谢!如果您将其添加为答案,我会接受。

标签: matlab octave smooth loess


【解决方案1】:

这是 Excel Basic 中的一些黄土代码,可能是一个开始:

http://peltiertech.com/WordPress/loess-smoothing-in-excel/

【讨论】:

    【解决方案2】:

    看起来有人已经实现了它:smooth.m 或者在 Octave-Forge 上可能是 data smoothing package

    【讨论】:

    • 实际上,这个文件实现了移动平均和 sgolay 平滑(所以这是一个开始!),但我尝试使用的特定“黄土”平滑还没有实现。跨度>
    • @JohnLawrenceAspden 那么也许你应该不接受答案,看看是否有人可以提供更好的东西......
    • @JohnLawrenceAspden data smoothing package 还包含regdatasmooth,它既不是移动平均线也不是 sgolay。它可以表现得非常好。只需确保使用“lambda”参数即可。例如y_smooth = regdatasmooth(x_data, y_data, "lambda", lambda, "xhat", x_smooth)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    相关资源
    最近更新 更多