我正在使用 nalgebra,我想通过将一个矩阵设置为另一个具有兼容尺寸的列来修改一个矩阵,如下所示:
let zero: T = convert(0.0);
let mut basis = DMatrix::from_element(rows, rank, zero);
// matrix is an input with dimensions rows x cols
for i in 0..location.len()
{
basis.column_mut(i) = matrix.column(location[i]);
}
我还尝试过取消引用分配的双方,并寻找某种“分配”方法,但没有成功。
set_column
不起作用,因为DMatrix
没有实施DimName
我目前的工作是这样的,但我一点也不喜欢它:
// Construct basis vectors initialized to 0.
let zero: T = convert(0.0);
let mut basis = DMatrix::from_element(rows, rank, zero);
for i in 0..location.len()
{
// Copy the pivot column from the matrix.
let col = location[i];
for r in 0..matrix.nrows()
{
basis[(r, i)] = matrix[(r, col)];
}
}
我也不知道它是什么
column_mut
意思,它有什么作用,或者它应该如何工作。它的文档相当稀疏(不存在)。我认为set_column
你正在尝试做的事情(也许你叫错了?):(我将你的代码调整为 MWE)