Rust ndarray -如何设置元素的单个元素

0lvr5msh  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(102)

如果我创建一个二维ndarray::Array2对象,我如何在单独的基础上设置数组(矩阵)的每个元素?

use ndarray::Array2;

// ...

// a 10 x 10 element matrix
let my_array = Array2::zeros((10, 10));

// how to set arbitrary elements of the matrix to an arbitrary value?

我尝试创建一个Dim对象,但不知道如何设置它的每个元素的值。
我打算将其与get_mut结合使用。

let index = ndarray::Dim::zeros(2); // 2 dimensional index

my_array.get_mut(&index) = 10.0; // compiler error

我不确定ndarray的数组对象应该如何用于获取和设置元素。

gcuhipw9

gcuhipw91#

ndarray支持可索引容器的所有操作(一个恐慌的[]操作符和易出错的get()get_mut())。最简单的索引方法是使用数组,每个维度对应一个元素:

my_array[[0, 0]] = 10.0;

你也可以按Dim索引,但它必须是静态的Dim,而不是动态的:

use num_traits::Zero;

let index = ndarray::Dim::<[ndarray::Ix; 2]>::zero(); // 2 dimensional index

// Or better,
// my_array[index] = 10.0;
*my_array.get_mut(index).unwrap() = 10.0;

相关问题