A Rust reimplementation of Matlab's interp1
function for linear interpolation.
API documentation is available on docs.rs.
Add interp
to your Cargo.toml
file:
toml
[dependencies]
interp = "1.0"
Or, if you need the interp_array
feature (only supported on Rust 1.55.0 or later)
toml
[dependencies]
interp = { version = "1.0", features = ["interp_array"] }
```rust use interp::interp;
let x = vec![0.0, 0.2, 0.5, 0.8, 1.0]; let y = vec![0.0, 1.0, 3.0, 3.5, 4.0];
// Interpolate at a single point assert_eq!(interp(&x, &y, 0.35), 2.0);
// Interpolate a vec let xp = vec![0.1, 0.65, 0.9]; asserteq!(interpslice(&x, &y, &xp), vec![0.5, 3.25, 3.75]);
// Interpolate an array (requires the interparray feature and Rust 1.55.0+) let xp = [0.1, 0.65, 0.9]; asserteq!(interp_array(&x, &y, &xp), [0.5, 3.25, 3.75]); ```
Full API documentation is available on docs.rs.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
You can install the [pre-commit] hook (which checks formatting, etc) by running:
bash
pip install -U pre-commit
pre-commit install
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.