pub type IxDyn = Dim<IxDynImpl>;
Expand description
dynamic-dimensional
You can use the IxDyn
function to create a dimension for an array with
dynamic number of dimensions. (Vec<usize>
and &[usize]
also implement
IntoDimension
to produce IxDyn
).
use ndarray::ArrayD;
use ndarray::IxDyn;
// Create a 5 × 6 × 3 × 4 array using the dynamic dimension type
let mut a = ArrayD::<f64>::zeros(IxDyn(&[5, 6, 3, 4]));
// Create a 1 × 3 × 4 array using the dynamic dimension type
let mut b = ArrayD::<f64>::zeros(IxDyn(&[1, 3, 4]));
// We can use broadcasting to add arrays of compatible shapes together:
a += &b;
// We can index into a, b using fixed size arrays:
a[[0, 0, 0, 0]] = 0.;
b[[0, 2, 3]] = a[[0, 0, 2, 3]];
// Note: indexing will panic at runtime if the number of indices given does
// not match the array.
// We can keep them in the same vector because both the arrays have
// the same type `Array<f64, IxDyn>` a.k.a `ArrayD<f64>`:
let arrays = vec![a, b];
Aliased Type§
struct IxDyn { /* private fields */ }
Implementations§
Trait Implementations§
source§impl Dimension for IxDyn
impl Dimension for IxDyn
IxDyn is a “dynamic” index, pretty hard to use when indexing, and memory wasteful, but it allows an arbitrary and dynamic number of axes.
source§const NDIM: Option<usize> = None
const NDIM: Option<usize> = None
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
.source§fn into_pattern(self) -> Self::Pattern
fn into_pattern(self) -> Self::Pattern
Convert the dimension into a pattern matching friendly value.
source§fn zeros(ndim: usize) -> Self
fn zeros(ndim: usize) -> Self
Creates a dimension of all zeros with the specified ndim. Read more
source§fn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
source§fn as_array_view(&self) -> ArrayView1<'_, Ix>
fn as_array_view(&self) -> ArrayView1<'_, Ix>
Borrow as a read-only array view.
source§fn as_array_view_mut(&mut self) -> ArrayViewMut1<'_, Ix>
fn as_array_view_mut(&mut self) -> ArrayViewMut1<'_, Ix>
Borrow as a read-write array view.
impl<'a> NdIndex<Dim<IxDynImpl>> for &'a IxDyn
source§impl<'a, I> AddAssign<&'a Dim<I>> for Dim<I>
impl<'a, I> AddAssign<&'a Dim<I>> for Dim<I>
source§fn add_assign(&mut self, rhs: &Self)
fn add_assign(&mut self, rhs: &Self)
Performs the
+=
operation. Read moresource§impl<I> AddAssign for Dim<I>
impl<I> AddAssign for Dim<I>
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moresource§impl<'a, I> MulAssign<&'a Dim<I>> for Dim<I>
impl<'a, I> MulAssign<&'a Dim<I>> for Dim<I>
source§fn mul_assign(&mut self, rhs: &Self)
fn mul_assign(&mut self, rhs: &Self)
Performs the
*=
operation. Read moresource§impl<I> MulAssign<usize> for Dim<I>
impl<I> MulAssign<usize> for Dim<I>
source§fn mul_assign(&mut self, rhs: Ix)
fn mul_assign(&mut self, rhs: Ix)
Performs the
*=
operation. Read moresource§impl<I> MulAssign for Dim<I>
impl<I> MulAssign for Dim<I>
source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*=
operation. Read moresource§impl<I: PartialEq + ?Sized> PartialEq for Dim<I>
impl<I: PartialEq + ?Sized> PartialEq for Dim<I>
source§impl RemoveAxis for Dim<IxDynImpl>
impl RemoveAxis for Dim<IxDynImpl>
fn remove_axis(&self, axis: Axis) -> Self
source§impl<'a, I> SubAssign<&'a Dim<I>> for Dim<I>
impl<'a, I> SubAssign<&'a Dim<I>> for Dim<I>
source§fn sub_assign(&mut self, rhs: &Self)
fn sub_assign(&mut self, rhs: &Self)
Performs the
-=
operation. Read moresource§impl<I> SubAssign for Dim<I>
impl<I> SubAssign for Dim<I>
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-=
operation. Read more