Fitting data to a B-spline in MATLAB

2020-07-25 09:00发布

问题:

I am trying to estimate missing values in time-series data which is in the form of a matrix. The columns represent the time points,i.e. Now, I want to fit each row of the matrix to a B-Spline, and use it to estimate the missing values. I could fit the data to a normal spline using MATLAB, but I am completely stuck at trying to figure out how to fit the data to create a B-Spline. Using the default bspline function in the Curve Fitting Toolbox lets me set the knot vector to the vector of time points, but I cannot set the control points, i.e. the elements of the row.
Any help would be much appreciated.

EDIT: EXAMPLE ADDED

The time-series data has rows that look like this:

-0.11    0.1    0.01    0.06    0.04   -0.26    0.04    0.19   -0.22    -0.2    0.12    0.21    -0.26    -0.3    0.22    0.58    -0.36    0.13

My knot vector is basically the time points, and it looks like this:

 0     7    14    21    28    35    42    49    56    63    70    77    84    91    98   105   112   119

Basically I want to use each row along with the knot vector to construct a B-Spline.

回答1:

what about these?

  1. Fast B-Spline class
  2. N-dimensional B-splines
  3. B-Spline tools
  4. splinefit