gpt4 book ai didi

c++ - 选择索引不连续的 Armadillo 子矩阵

转载 作者:行者123 更新时间:2023-11-28 01:45:17 25 4
gpt4 key购买 nike

我正在将 python 代码传递给 C++,在那里我找到了这样的 python 表达式:

J11 = dS_dVa[array([pvpq]).T, pvpq].real

在这里,J11dS_dVa是稀疏矩阵,pvpq是一个索引数组,可以按任何增长顺序排列(即 1、2、5、7、9)

查看文档 here我推断如下:

arma::Row<int> pvpq(calc->pqpv);

arma::sp_mat J11 = arma::real(dS_dVa.submat(pvpq, pvpq));

哪里calc->pqpv类型为 std::vector<int> .

但是 GCC 编译器说:

engine.h:2436: error: no matching function for call to ‘arma::SpMat<std::complex<double> >::submat(arma::Row<int>&, arma::Row<int>&)’
arma::sp_mat J11 = arma::real(dS_dVa.submat(pvpq, pvpq));
^

我该如何解决这个问题?

它是否告诉我稀疏矩阵没有 submat方法?

最佳答案

Armadillo 只支持连续形式的子矩阵 View 。请参阅 sp_mat 中的注意事项部分文档。

关于c++ - 选择索引不连续的 Armadillo 子矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401725/

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