我试图删除与本征创建一个张量::张量
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;
}
如何删除我的张量?我要明确并改变其大小
先感谢您
你的编译器告诉你什么是错的。 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);
然后删除将是适当的。