Existe uma maneira de não precisar inicializar matrizes duas vezes?

Eu preciso inicializar cada elemento de uma matriz para uma expressão não constante. Posso fazer isso sem precisar primeiro inicializar cada elemento da matriz para uma expressão sem sentido? Aqui está um exemplo do que eu gostaria de poder fazer:

fn foo(xs: &[i32; 1000]) {
    let mut ys: [i32; 1000];

    for (x, y) in xs.iter().zip(ys.iter_mut()) {
        *y = *x / 3;
    }
    // ...
}

Este código fornece o erro em tempo de compilação:

error[E0381]: borrow of possibly uninitialized variable: `ys`
 --> src/lib.rs:4:33
  |
4 |     for (x, y) in xs.iter().zip(ys.iter_mut()) {
  |                                 ^^ use of possibly uninitialized `ys`

Para corrigir o problema, preciso alterar a primeira linha da função para inicializar os elementos deys com alguns valores fictícios assim:

let mut ys: [i32; 1000] = [0; 1000];

Existe alguma maneira de omitir essa inicialização extra? Envolvendo tudo em umunsafe O bloco não parece fazer nenhuma diferença.