只是学习一些生锈。我正在使用ndarray
,我需要构造一个从另一个矩阵复制维度的零矩阵。我试过了
fn make_0(matrix: Array2<i32>) -> Array2<i32> {
Array2::zeros(matrix.shape())
}
但这不会编译:
error[E0271]: type mismatch resolving `<&[usize] as ShapeBuilder>::Dim == Dim<[usize; 2]>`
--> src/lib.rs:62:9
|
62 | Array2::zeros(matrix.shape())
| ^^^^^^^^^^^^^ expected array `[usize; 2]`, found struct `IxDynImpl`
|
= note: expected struct `Dim<[usize; 2]>`
found struct `Dim<IxDynImpl>`
我可以解决它
fn make_0(matrix: Array2<i32>) -> Array2<i32> {
Array2::zeros((matrix.shape()[0], matrix.shape()[1]))
}
但我想有更好的东西,我在这里迷失了类型。