Я хочу разделить каждую строку квадратного массива (b
) транспонированием массива столбцов (a
).
Тестовый код также находится на godbolt.org , в котором установлена библиотека eigen 3.
Ожидаемый результат:
// before (a)
2
2
2
// before (b)
2 2 2
4 4 4
6 6 6
// after
1 1 1
2 2 2
3 3 3
Тест:
#include <Eigen/Eigen>
#include <iostream>
using namespace Eigen;
int main() {
ArrayXXf a(3, 1);
a << 2, 2, 2;
ArrayXXf b(3, 3);
b << 2, 2, 2, 4, 4, 4, 6, 6, 6;
std::cout << a << "\n";
std::cout << b << "\n";
b.rowwise() /= a.transpose();
std::cout << b << "\n";
}
Ошибка компиляции
...
error: static assertion failed: YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX
...
Смежный вопрос:
Eigen: разделить каждую строку на последнюю строку
Принятым ответом является использование строк на собственных матрицах, преобразованных в собственные массивы.Я просто не понимаю, почему это не работает в моем случае ...