【发布时间】:2022-01-12 14:51:54
【问题描述】:
以下片段产生编译错误:
arma::Mat<double> a(10,10,arma::fill::zeros);
arma::ucolvec w = whatever1;
whatever2 = a.rows(w).each_col() + another-col-vector;
错误是 arma::subview_elem2 没有名为 each_col 的成员。
在 Armadillo 的许多情况下,标准数组函数并不总是可用于其他函数调用的表达式或结果。显然 rows() 函数不返回一个 Mat 对象,而是一个 subview_elem2 对象,大概是为了优化。另一种方法是在 Mat 和其他内部类(例如子视图)实现的接口/纯抽象类中声明所有数组函数。除了只生成 r 值的表达式的写操作之外,似乎应该可以使所有 Armadillo 数组表达式与数组对象互换。
所以...我希望得到以下结果
a) 说明哪些方法不适用于哪些结果。 b) 最好启用所有有意义的数组方法组合。
如果没有上述,如何才能达到想要的结果,也就是对表达式求值:
a.rows(w).each_col()
??
【问题讨论】:
标签: armadillo