gpt4 book ai didi

rust - 无法对array::Viewer进行数学运算

转载 作者:行者123 更新时间:2023-12-03 11:42:16 27 4
gpt4 key购买 nike

Rust游乐场列出here
我正在使用ndarray,我正在尝试使用数组的部分进行数学运算。这是一个生成我所看到的错误的示例:


use ndarray::{Array1, Array2};

fn main() {
let mut bob = Array2::<i16>::eye(3);
let ralph = Array1::<i16>::ones([3]);
for mut b in bob.outer_iter() {
b += b + ralph;
}
println!("{}", bob);
}
这给出了错误 error[E0369]: cannot add `ArrayBase<OwnedRepr<i16>, Dim<[usize; 1]>>` to `ArrayBase<ViewRepr<&i16>, Dim<[usize; 1]>>` 我希望的是 bob的版本,并在每行中添加 ralph
有没有办法做到这一点,而不仅仅是逐个元素地生成一个新的数组?

最佳答案

bob.outer_iter()逐一遍历值,为它们提供不变的引用。为了能够进行变异,我们必须使用bob.outer_iter_mut()
话虽如此,我认为这不是您想要的。有一种简单的方法可以将ndarrays一起添加:

use ndarray::{Array1, Array2};

fn main() {
let mut bob = Array2::<i16>::eye(3);
let ralph = Array1::<i16>::ones([3]);
let sue = bob + ralph;
println!("{}", sue);
}

关于rust - 无法对array::Viewer进行数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66378388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com