gpt4 book ai didi

c++ - 使用Armadillo做 `Q.slice(a).col(b)`的更有效方法

转载 作者:行者123 更新时间:2023-12-01 14:53:20 26 4
gpt4 key购买 nike

是否有比Q.slice(a).col(b)从Armadillo中的多维数据集中提取列的更有效的方法?

类似于tube,但用于最后2个维度,而不是前2个维度。

最佳答案

获取指向所需 slice 的所需列的第一个元素的指针。然后将该指针传递给vec class的高级构造函数之一。
例:

cube C(6, 5, 4, fill::randu); // cube with 4 slices

vec v1 = C.slice(2).col(3); // normal way of extracting a vector

vec v2( &C(0,3,2), C.n_rows, false, false); // alternative way

请注意,尽管这可行,但这并不安全。如果 C调整大小或删除,则 v2将使用未分配的内存或其他对象的内存。在第一种情况下,可能会导致段错误。在第二种情况下,这是信息泄漏。

如果 Cconst cube,请使用 const_cast从获得的指针中剥离 const。同样,这是不安全的。

关于c++ - 使用Armadillo做 `Q.slice(a).col(b)`的更有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696596/

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