2016-11-09 4 views
0

Я пытаюсь использовать Eigen в C++ с тензорами, и я получаю ошибку как для команды new ниже, так и для команды добавления.Почему я получаю эту ошибку с Eigen в C++?

Как создать новый тензор с определенными размерами в каждом «режиме» (матрица 3 х 3 в этом случае) и как добавить два тензора такого типа?

Кроме того, что мне нужно сделать, чтобы принять * тензор и умножить его на себя (через тензорное сжатие) на одну из мод, чтобы получить новый тензор 3 x 3?

#include <eigen/Eigen/Core> 
#include <eigen/unsupported/Eigen/CXX11/Tensor> 


int main() 
{ 
    Tensor<double, 2>* tensor; 

    tensor = new Tensor<double, 2>(3,3); 

    (*tensor) = (*tensor) + (*tensor); 
} 

Ошибки я получаю: для нового заявления:

Field `Tensor' must be static. 

Для добавления заявления:

Class `complex<Tensor<double,2,0,DenseIndex>>' is not compatiable with class 'Tensor<double,2,0,DenseIndex>'. 

ответ

0

НКУ-5,4, libeigen3-DEV на ubu16, следующие компилирует для me:

// g ++ --std = C++ 11 -I/usr/include/eigen3 test2.cpp -Wall -o test2

#include <Eigen/Core> 
#include <unsupported/Eigen/CXX11/Tensor> 


int main() 
{ 
    Eigen::Tensor<double, 2>* tensor; 

    tensor = new Eigen::Tensor<double, 2>(3,3); 

    (*tensor) = (*tensor) + (*tensor); 
} 
+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/14239115) – Garf365

+1

Я считаю, что он пропускает пространство Eigen :: namespace, включенные пути выглядят немного подозрительно. Я дал ему или ей код, чтобы проверить, что это решает его проблему и командную строку компиляции. Если Mr/Ms kloop продолжает получать те же ошибки с кодом выше, мы можем сузить, где может быть проблема. Или это может решить проблему. Надеюсь, время и г-н Клоп скажут! – Hal

+0

Я все еще получаю те же ошибки ... – kloop