gpt4 book ai didi

c++ - 特征:通过引用访问矩阵的列

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:11 27 4
gpt4 key购买 nike

我正在使用 Eigen C++ 矩阵库,我想获取对矩阵列的引用。文档说要使用 matrix_object.col(index),但这似乎返回了一个表示列的对象,而不是简单地引用原始矩阵对象中的列。我担心这涉及对该列中元素的不必要复制,因为更改列对象中的值不会影响原始矩阵。

如果有人比我更熟悉 Eigen,那么使用这个函数访问矩阵的列是否仍然有效?如果不是,我怎样才能获得对矩阵内原始列的引用?

最佳答案

mat.col(i) 返回引用 mat 的第 i 列的轻量级读写代理对象。根本没有拷贝。所以你可以这样做:

mat.col(i)(j) = 2;

相当于mat(j,i)=2;您还可以:

mat.col(i).swap(mat.col(j));

没有任何额外的拷贝。也许在您的代码中,您显式(或隐式)将代理列对象复制到 Vector 对象中?像这样:

VectorXd col_of_mat = mat.col(j);

关于c++ - 特征:通过引用访问矩阵的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com