【问题标题】:Rust ndarray, arithmetic operations over owned valuesRust ndarray,对拥有值的算术运算
【发布时间】:2020-02-27 13:24:55
【问题描述】:

我一直在尝试了解使用自有数组的工作原理。所以我试着写了这个函数,它没有编译。

use ndarray::prelude::*;
fn add_arrays<T>(ar1 : &Array1<T>, ar2 : &Array1<T>) -> Array1<T>
    where T : Add+Sub+Div+Mul
{
    ar1 + ar2
}

但我收到此错误:

binary operation `+` cannot be applied to type `ndarray::ArrayBase<ndarray::OwnedRepr<T>, ndarray::dimension::dim::Dim<[usize; 1]>>`

note: an implementation of `std::ops::Add` might be missing for `ndarray::ArrayBase<ndarray::OwnedRepr<T>, ndarray::dimension::dim::Dim<[usize; 1]>>`

我想知道应该怎么做

【问题讨论】:

    标签: multidimensional-array rust


    【解决方案1】:

    你应该使用LinalgScalar trait

    use ndarray::*;
    
    fn add_arrays<T>(ar1: &Array1<T>, ar2: &Array1<T>) -> Array1<T>
    where
        T: LinalgScalar,
    {
        ar1 + ar2
    }
    
    fn main() {
        let a = array![1.0, 2.0];
        let b = array![3.0, 4.0];
        let c = add_arrays(&a, &b);
        println!("{:?}", c);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 2023-03-22
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2017-01-10
      相关资源
      最近更新 更多