ошибка: тип 'класс Eigen :: TensorАргумент «удалить», ожидаемый указатель - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь удалить тензор, созданный с помощью 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;
  }

Как я могу удалить свой тензор?Я должен очистить его и изменить его размер

Заранее спасибо

1 Ответ

0 голосов
/ 04 февраля 2019

Ваш компилятор говорит вам, что не так.H не является указателем и не был размещен в куче.Просто удалите delete H, и все будет в порядке, так как он будет уничтожен, когда выйдет за рамки.

Так вот как вы бы создали матрицу 3х3:

#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);

, тогда удаление будет уместным.

...