I'd like to swap the rows/columns of a given 2D ndarray idiomatically. I've found this question: #545, which explains that one can create two mutable array views, however it doesn't explain how this is done. I've done something hacky, like so,
fn swap(mut keys: KeysViewMut, i: usize, j: usize) {
let mut row_x = keys.index_axis_mut(ndarray::Axis(0), 0);
row_x.swap(i, j);
{
let mut row_y = keys.index_axis_mut(ndarray::Axis(0), 1);
row_y.swap(i, j);
}
{
let mut row_z = keys.index_axis_mut(ndarray::Axis(0), 2);
row_z.swap(i, j);
}
{
let mut row_l = keys.index_axis_mut(ndarray::Axis(0), 3);
row_l.swap(i, j);
}
}
To ensure that the borrows are in their own scope.
I'd like to swap the rows/columns of a given 2D ndarray idiomatically. I've found this question: #545, which explains that one can create two mutable array views, however it doesn't explain how this is done. I've done something hacky, like so,
To ensure that the borrows are in their own scope.