我正在尝试删除使用Eigen :: Tensor创建的张量
N1,N2和N3是int的向量
N1 << 1,2,3
N2 << 4,3,5
N3 << 9,7,8
for(int i = 0; i < 3; i++ )
{
Eigen::Tensor<double, 3> Hs(N1(i),N2(i),N3(i));
Hs.setZero();
delete Hs;
}
如何删除张量?我必须清除它并更改其大小
提前谢谢
答案 0 :(得分:2)
您的编译器正在告诉您什么地方不对。 H
不是指针,也没有在堆上分配。只需删除delete H
,就可以了,因为它超出范围时会被破坏。
这就是创建3x3矩阵的方法:
#include <Eigen/Sparse>
int main(void)
{
Eigen::Matrix<double, 3, 3> H;
H.setZero();
}
仅出于完整性考虑(如果不需要,请不要这样做):
Eigen::Tensor<double, 3> H* = new Eigen::Tensor<double, 3>(N1,N2,N3);
然后删除将是适当的。