提问人:thefrollickingnerd 提问时间:11/17/2023 更新时间:11/17/2023 访问量:20
将带有 Vec 的 nalgebra 向量的结构解压缩到矩阵中
Unpack struct with Vec of nalgebra vectors into matrix
问:
我有一个数据结构,我正在尝试实现一个方法。目标是得到一个矩阵,该矩阵由具有 vector3 值的结构体组成。
pub struct Body {
pub pos: Vector3<f64>,
etc
}
pub struct Data {
pub system_vec: Vec<Body>,
}
impl Data {
fn get_spatial_mat<S>(self: Self) OMatrix<f64, U3, Dyn> {
let n_bodies: &usize = &self.system_vec.len();
na::OMatrix::<f64, U3, Dyn>::from_columns(
self.system_vec.iter()
.map(|body| body.pos.clone()).collect::Vec<Vector3<f64>>()
)
}
}
我在 collect 语句中遇到错误
expected `&[Matrix<f64, Const<3>, ..., ...>]`, found `Vec<Matrix<f64, ..., ..., ...>>`
但我不知道如何返回这些结构值的一部分。大概有一种更好的方法可以解决这个问题,但是 nalgebra 中的 From_iterator 采用它看起来像的平面 vec 的迭代器,而不是 vec 的迭代器。
作为第二个问题,我不知道如何将第二个矩阵维度指定为 n_bodies,如果我用它所说的 n_bodies 替换 Dyn
Attempt to use non-constant value in constant
答: 暂无答案
评论