Я пытаюсь использовать 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>'.
Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/14239115) – Garf365
Я считаю, что он пропускает пространство Eigen :: namespace, включенные пути выглядят немного подозрительно. Я дал ему или ей код, чтобы проверить, что это решает его проблему и командную строку компиляции. Если Mr/Ms kloop продолжает получать те же ошибки с кодом выше, мы можем сузить, где может быть проблема. Или это может решить проблему. Надеюсь, время и г-н Клоп скажут! – Hal
Я все еще получаю те же ошибки ... – kloop