A toolbox for nonparametric probability function estimation using normalized B-splines
Updated 17 May 2023

View License

A MATLAB toolbox 'bsspdfest' implementing nonparametric probability function estimation using normalized B-splines was developed. The toolbox implements nonparametric probability function estimation procedures for one or more dimensions using a B-spline series for one-dimensional data and a tensor product B-spline series for multi-dimensional data. The toolbox takes advantage of the direct addressing of MATLAB arrays up to three dimensions and various vectorization approaches to speed up the computations. For data dimensions greater than three indirect addressing is used, converting multi-dimensional indices into linear array addressing, making this function slower.
The toolbox supports the computation of the PDF, CDF, and survivor functions for data of all dimensions as well as the inverse CDF (ICDF) and cumulative hazard functions for one dimensional data. The toolbox also supports the creation and use of gridded interpolants to provide very fast approximate evaluation of the B-spline series or tensor product series for the probability functions. Bounded domains are also now supported for all dimensions.
Version 3.1.0 of the bsspdfest toolbox has just been released! The major changes were to the interfaces for the estimation and evaluation functions. They were changed from using positional arguments to varargin. In addition, a memory saving evaluation of gridded interpolants was introduced to avoid generating the entire grid of points before creating the gridded interpolant. A variety of minor improvements and corrections to the documentation in the headers were also made. See the Changes.txt file for details.

Cite As

Kevin Gehringer (2024). bsspdfest (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Fixed the issue with the memory conserving evaluation for gridded interpolants. Made the examples in the two test scripts identical to avoid possible confusion about the results.


Fixed an unknown variable error caused by leaving a debugging statement uncommented when creating a gridded interpolant.


Found a problem with limited memory evaluation for gridded interpolants and data dimensions > 3. Switched to using full grid until the problem is resolved. V3.0.0 and V3.0.1 work for 1-3 dimensional data.


Fixed error in test scripts.


Interfaces were changed from positional arguments to varargin name/value pairs. A memory saving evaluation approach was used to conserve memory when computing gridded interpolants. Various improvements and corrections to the documentation.


A variety of minor improvements were made and several bugs introduced in the refactoring of the previous version, 2.4.0, were fixed. In addition, 3-D and N-D (4-D) examples were added to the test scripts. See the Changes.txt file for details.


A variety of minor improvements were made. See the Changes.txt file for details.


Fixed a typo that was not caught in other testing for some reason. Should
have done one more test after packaging.


Now uses reflection for active boundaries on bounded or semi-infinite domains and also supports bounded domains for data of all dimensions. A variety of performance improvements have also been made.

Added support for bounded and semi-infinite domains. Fixed several bugs. See the User's Guide or the file changes.txt for details.

Fixed several bugs, consolidated input checking for the PDF estimation functions, removed the 3-d visualization movies to reduce the package size.

Fixed several errors in the User's Guide. Added a new test script that does not depend on the Statistics and Machine Learning Toolbox. The addition of the new test script and supporting functions is why the version number changed.

Version 2.0.0 includes significant performance improvements, support for computing PDF, CDF, and survivor functions as well as the inverse CDF and cumulative hazard functions in one dimension.
Fixed a typo in the description

Fixed an issue with the license file.