gpt4 book ai didi

c++ - Armadillo C++ : Passing a submatrix into a function

转载 作者:行者123 更新时间:2023-11-30 02:41:43 27 4
gpt4 key购买 nike

我正在使用 C++ 和 Armadillo 库。我有一个表单的功能

arma::mat foo(arma::mat my_matrix)

我想将 my_matrix 的子矩阵传递给 foo。可以像这样提取子矩阵:

my_matrix.col(0)

但是每当我尝试这样做时:

foo(my_matrix.col(0))

我遇到编译错误。 如何在不执行此操作的情况下修复它:

mat submatrix = my_matrix.col(0)
foo(submatrix)

(确实有效,但涉及额外的代码行)。

最佳答案

将输入类型更改为 const 引用 (const arma::mat&),这允许编译器在这种情况下自动生成临时矩阵。

例子:

using namespace arma;

mat foo(const mat& my_matrix)
{
mat y = my_matrix * 2.0;

return y;
}


void bar()
{
mat x(10,10, fill::randu);

mat y = foo( x.col(0) );

y.print("y:");
}

关于c++ - Armadillo C++ : Passing a submatrix into a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786970/

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