matlab - 如何解决 Matlab 函数 csaps 的非平滑结果
问题描述
我的目标是为大量非均匀间隔的数据找到平滑曲线,使曲线的最小幅度尽可能大。“csaps”函数似乎是我需要的,因为它允许通过改变平滑参数 p 来获得不同程度的平滑。我为此尝试了不同类型的优化,但发现结果不正确。“csaps”函数对 p 的低值产生不平滑的结果。这对我来说是最有趣的平滑参数范围。为了制作最小的工作示例,有必要在 *.mat 文件中附加数据。我不知道该怎么做。但是,如果我对我的数据运行以下代码:
plot(cv,pr,'.','DisplayName','data')
hold on
grid on
cvi=linspace(0,cv(end),10000);
p=1e-5;
pp = csaps(cv,pr,p);
plot(cvi,ppval(pp,cvi),'k-','LineWidth',2,'DisplayName',['p=',num2str(p)])
p=1e-10;
pp = csaps(cv,pr,p);
plot(cvi,ppval(pp,cvi),'r-','LineWidth',2,'DisplayName',['p=',num2str(p)])
legend('Location','best')
我得到:
对于 p=1e-10,对于较小的 cv 值,平滑曲线看起来不平滑。
我试过 fnval 而不是 ppval 但这并没有改善。有谁知道为什么会发生这种情况,我怎样才能对大型数据集进行良好的平滑处理?
解决方案
推荐阅读
- typescript - 打字稿路径导致错误的导入
- node.js - npm 并发错误?当同时运行前端和后端时?
- python - 在python中查找组中最后满足一定条件的记录,并根据记录的类型创建一个新列
- r - 从与向量匹配的多个文件中获取工作表名称
- android - 在导航抽屉活动 Android 中添加额外内容
- reactjs - 如何访问组件内的 redux 存储?
- haskell - 递归方案允许递归调用之间的依赖关系(有序的变态?)
- python - 冒泡排序的问题没有对最后一个数字进行排序
- c# - 当 1 个或多个 TextBox 字段为空时禁用按钮
- c++ - 如何在 Visual Studio 中启用特定的 if-else 格式?