2011-04-20 21 views

回答

0

如果你使用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; 
2

你可以根據這個規則添加matricies:添加

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

兩個matricies必須具有相同的行數和列數。

如何爲您的存儲方案執行操作取決於您如何映射行和列。但是規則沒有改變,因爲這就是矩陣工作的原理。

+1

+1,根據提供的信息可以得到最佳答案。值得注意的是,C中存在的元素(i,j)的條件是A或B中元素的存在,除非您碰巧發現A [i,j] == -B [i,j ],給予一定的精度。 – Flexo 2011-04-20 13:24:27