Rust ndarray 算术运算意外类型不匹配
Rust ndarray arithmetic operation unexpected type mismatch
我在尝试对 ndarray crate 的两个 Array1
执行算术运算时遇到问题。
我已尝试将我的问题简化为以下代表:
#[macro_use(array)]
extern crate ndarray;
use ndarray::Array1;
fn main() {
let a: Array1<i8> = array![1, 2, 3];
let baz = &a - array![1, 2, 3];
println!("{:#?}", baz);
}
它失败了:
|
8 | let baz = &a - array![1, 2, 3];
| ^ expected struct `ndarray::ArrayBase`, found i8
|
根据 documentation 我应该能够减去两个 Array1
和 array!
创建一个 Array1
.
我做错了什么?
我应该更仔细地阅读 documentation:
&A @ &A which produces a new Array
B @ A which consumes B, updates it with the result, and returns it
B @ &A which consumes B, updates it with the result, and returns it
C @= &A which performs an arithmetic operation in place
不知为何没有&A @ B
情况。第二个参数不能被消费。 none 是,或者只是第一个。因为我不想在这里消耗 a
,所以我需要引用 array!
宏的 return 值。
所以解决方案是:
let baz = &a - &array![1, 2, 3];
虽然编译器错误在这里并没有真正帮助...
我在尝试对 ndarray crate 的两个 Array1
执行算术运算时遇到问题。
我已尝试将我的问题简化为以下代表:
#[macro_use(array)]
extern crate ndarray;
use ndarray::Array1;
fn main() {
let a: Array1<i8> = array![1, 2, 3];
let baz = &a - array![1, 2, 3];
println!("{:#?}", baz);
}
它失败了:
|
8 | let baz = &a - array![1, 2, 3];
| ^ expected struct `ndarray::ArrayBase`, found i8
|
根据 documentation 我应该能够减去两个 Array1
和 array!
创建一个 Array1
.
我做错了什么?
我应该更仔细地阅读 documentation:
&A @ &A which produces a new Array
B @ A which consumes B, updates it with the result, and returns it
B @ &A which consumes B, updates it with the result, and returns it
C @= &A which performs an arithmetic operation in place
不知为何没有&A @ B
情况。第二个参数不能被消费。 none 是,或者只是第一个。因为我不想在这里消耗 a
,所以我需要引用 array!
宏的 return 值。
所以解决方案是:
let baz = &a - &array![1, 2, 3];
虽然编译器错误在这里并没有真正帮助...