ANAGHA S GOURI Ответов: 1

Как выполнить деление матрицы матрицу, используя собственные библиотеки в 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.
Прервана (ядро бросила)

Любая идея, что это неправильно?? Пожалуйста помочь.

1 Ответов

Рейтинг:
1

Kenneth Haugland

Вам нужно понять математику, стоящую за матрицей:
Как разделить матрицы (с картинками) - wikiHow[^]

Вы не можете разделить одну матрицу на другую матрицу напрямую.