Matlab:如何从平滑线函数-csaps或其他函数仍使用平滑参数获取数组/矢量?

问题描述

问题:考虑编码:

  sample = 100;         % Data points
  x = linspace(-5,5);   % Data bounds
  y= 1.6 * x.^2 +6;     % Function
  r = randn(10,sample); % Add noise
  p = 0.1;              % Specify "smoothness"
  pp = csaps(x,y,p);    % Specify Spline/Smoothing line
  
  hold on               
  plot(x,r(1,:)+y,"b")  % Blue  :Plot random data
  plot(x,"k")         % Black :True "y data"
  fnplt(pp,"r")         % Red   :Plot Spline/Smoothing line

就像我有矢量“ y”和“ r”的精确数据一样,我也希望从平滑线获得相应的数据(这与矢量“ y”和“ r”并不完全相同- >,因为“ p”代表与真正的“ y”线的偏移量。


问题:考虑图表:

enter image description here

我有黑线和蓝线的向量,但我需要红线的向量。 (请注意,它们是三行不同的内容


如果不可能从样条函数“ csaps”中收集相应的数据点,是否还有另一种获取该数​​据的方法(另一个样条函数-同时仍然能够指定平滑参数“ p”)?也许获得一个“样条公式”,然后通过插入“ x”向量来获得相应的样条数据?

谢谢!

解决方法

在另一个平台上找到了答案。很简单。去给这个家伙竖起大拇指:

https://www.mathworks.com/matlabcentral/answers/584018-splines-how-to-find-vector-array-from-smoothing-line-function-csaps-or-another-function-still