Умножение одномерных массивов с матрицами с использованием Eigen

Мне было интересно, почему это не работает с Эйгеном:

MatrixXd A = MatrixXd::Random(3, 10);
Array<double, 1, Dynamic> x = Array<double, 1, Dynamic>::Random(10);
MatrixXd y = x.matrix() * A.transpose();

пока это работает:

MatrixXd A = MatrixXd::Random(3, 10);
Array<double, 1, Dynamic> x = Array<double, 1, Dynamic>::Random(10);
MatrixXd y = MatrixXd(x) * A.transpose();

и это тоже работает:

MatrixXd A = MatrixXd::Random(3, 10);
ArrayXXd x = Array<double, 1, Dynamic>::Random(10);
MatrixXd y = x.matrix() * A.transpose();

Мой компилятор выдает мне следующее сообщение об ошибке для первого примера (clang-500.2.79):

code / Eigen / src / Core / ArrayWrapper.h: 178: 56: ошибка: не может инициализировать возвращаемый объект типа «ScalarWithConstIfNotLvalue *» (он же «double *») со значением типа «const Scalar *» (он же «const double *») встроенный ScalarWithConstIfNotLvalue * data () {return m_expression.data (); }

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]