Как сложить матрицу двух лонжеронов вместе в c ++? - PullRequest
0 голосов
/ 20 апреля 2011

Я хочу добавить две разреженные матрицы вместе в C ++?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Вы добавляете матрицы в соответствии с этим правилом:

A[i,j] + B[i, j] = C[i,j]

Две добавляемые матрицы должны иметь одинаковое количество строк и столбцов.

От того, как вы это сделаете для своей схемы хранения, зависито том, как вы отображаете строки и столбцы.Но правила остаются неизменными, потому что так работают матрицы.

0 голосов
/ 20 апреля 2011

Если вы используете библиотеку boost :: ublas, то вы можете просто добавить их вместе, что-то вроде этого.

#include <boost/numeric/ublas/matrix_sparse.hpp>
using namespace boost::numeric::ublas;
compressed_matrix<double > A(30000, 100, 30000 ),B(30000, 100, 30000 ),C(30000, 100, 30000 );
A(1,1) = 1.0;
B(99,99) = 10.0;
C = A + B;
...