gpt4 book ai didi

c++ - 是否可以获取矩阵行的引用?

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

我有以下使用 Eigen C++ 库的代码。

void myFunc(Eigen::MatrixXf& myrow)
{

myrow.setOnes();
}



int main()
{


Eigen::MatrixXf A(2,3);
Eigen::MatrixXf tmp1(1,3);
myFunc(tmp1);
A.row(1) = tmp1;
std::cout<<"A is..\n"<<A<<std::endl;
return 0;

}

如您所见,为了操作矩阵 A 的行,我使用了一个临时变量“tmp1”。是否可以在不使用任何临时变量的情况下做到这一点?我不想将整个矩阵“A”作为参数传递给函数。请注意,“myFunc”只是一个例子,我可能需要在函数内部做一些复杂的事情来操作“A”的行。另请注意,有时我想调用示例中给出的“myFun”。所以我需要一个适用于这两种情况的解决方案。

最佳答案

Eigen 支持引用给定矩阵中子矩阵的 block 表达式。您可以将此 block 直接传递给您的函数:

void myFunc(Eigen::MatrixXf::RowXpr myrow)
{
myrow.setOnes();
}

...
myFunc(A.row(1));

block 表达式是Block .

关于c++ - 是否可以获取矩阵行的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831847/

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