Вот что я пробовал
use ndarray::{arr2, s};
let mut a = arr2(&[[1, 2, 3],
[4, 5, 6]]);
let b = arr2(&[[2, 3, 3],
[5, 6, 6]]);
a.slice_mut(s![.., ..2]).assign(&a.slice_mut(s![.., 1..]));
который явно не работает из-за правил заимствования (ссылка на игровую площадку ):
error[E0499]: cannot borrow `a` as mutable more than once at a time
--> src/main.rs:13:38
|
13 | a.slice_mut(s![.., ..2]).assign(&a.slice_mut(s![.., 1..]));
| - ------ ^ second mutable borrow occurs here
| | |
| | first borrow later used by call
| first mutable borrow occurs here
Вот a
то, что у меня есть, и b
это то, что я пытаюсь получить.
В numpy это так же просто, как a[:, :2] = a[:, 1:]
.
PS Может есть в nalgebra
обрешетке простое решение?