Estou usando nalgebra e quero modificar uma matriz definindo-a como as colunas de outra com dimensões compatíveis, assim:
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]);
}
Também tentei desreferenciar os dois lados da atribuição e procurei algum tipo de método de "atribuição", sem sorte.
set_column
não funciona porque DMatrix
não implementaDimName
Meu trabalho atual é este, mas não gosto nem um pouco:
// 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)];
}
}
Também não sei o que
column_mut
significa, o que faz ou como deveria funcionar. A documentação para isso é bastante esparsa (inexistente). Eu achoset_column
que faz o que você está tentando fazer (talvez você tenha chamado incorretamente?):(Eu ajustei seu código para ser um MWE)