Как выполнить деление матрицы матрицу, используя собственные библиотеки в C++
Я сделал код " MATLAB`, и он должен был выполнить
В2=АБС(Б2/Макс(В2));
где `B2` - матрица `n x m`. Каким должен быть эквивалентный код " C++", использующий библиотеку Eigen? Пожалуйста помочь.
Об изменении моего кода
//проблема
#include <iostream>
#include<complex.h>
#include <eigen3 eigen="" dense="">
#include <eigen3 eigen="" core="">
использование имен собственных;
использование пространства имен std;
использование Eigen::MatrixXd;
тап_п()
{
MatrixXd A(2,2);MatrixXd B(2,1);MatrixXd C(1,2);
А<<4,12,
6,8;
C=A. colwise().maxCoeff();
//B=(A*(1.0/C)).cwiseAbs();
B=A. array()/C. array();
соиь <&ЛТ; "решение-это :\Н" &ЛТ;&ЛТ; Б. cwiseAbs () на<< епси;
возвращает 0;
}
Что я уже пробовал:
Но я не могу выполнить этот код.
HP при НР-НР-ноутбук:~/диаграммы направленности/программы/eigen_prog$ г++ mm_t.cpp -о mm_t
hp@hp-HP-Notebook:~/beamforming/programs/eigen_prog$ ./mm_t
mm_t: /usr/local/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h:110: Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_quotient_op<double, double>; LhsType = const Eigen::ArrayWrapper<Eigen::Matrix<double, -1, -1> >; RhsType = const Eigen::ArrayWrapper<Eigen::Matrix<double, -1, -1> >; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Lhs = Eigen::ArrayWrapper<Eigen::Matrix<double, -1, -1> >; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Rhs = Eigen::ArrayWrapper<Eigen::Matrix<double, -1, -1> >]: Assertion `aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols()' failed.
Прервана (ядро бросила)
Любая идея, что это неправильно?? Пожалуйста помочь.