nalgebra 中 ndarray 的 .windows() 方法的最佳替代方法

问题描述 投票:0回答:1

我正在开发一个使用中心差异的项目,这意味着我需要在每次迭代中使用上一个、当前和下一个值。使用

nalgebra
这很简单,只需调用
.windows(3)
并映射值,如下所示:

y.windows(3).map(|window_vals| window_vals[0] - 2.0 * window_vals[1] + window_vals[2])

但是,不幸的是,我需要使用这个中心差分方法作为

impl
ode_solver
块的一部分(对于那些熟悉这个箱子的人来说,这是
system
方法)不幸的是这个库的特征要求意味着我需要使用
nalgebra
matrix
来代替,它似乎没有类似的方法。请让我知道在使用
nalgebra
矩阵而不是
ndarray
数组

时复制上述代码片段的最佳选择是什么
rust multidimensional-array nalgebra
1个回答
0
投票

您可以使用

as_slice
as_mut_slice
获取
Matrix
的切片视图,然后对该切片使用标准
windows
方法:

y.as_slice().windows(3).map(|window_vals| window_vals[0] - 2.0 * window_vals[1] + window_vals[2])
© www.soinside.com 2019 - 2024. All rights reserved.