我有问题与C ++ boost库中的稀疏矩阵有关。
有类似“boost / numeric / ublas / matrix_sparse.hpp”的东西,有3种稀疏矩阵。
我想知道是否例如mapped_matrix
允许使用它不仅仅是2D(二维),还可以用于3D,4D等。
从文档中我可以看到mapped_matrix<T, F, A>
,
T
- 存储在映射矩阵中的对象类型F
- 描述存储组织的Functor,A
- 适应数组的类型。所以我认为有可能将此映射矩阵用于例如3D。
你能告诉我在哪里可以找到一些示例代码,例如: 3D,4D - &gt;怎么用?
我修改了文档中的示例代码以使用map_std
:
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/io.hpp>
int main () {
using namespace boost::numeric::ublas;
mapped_matrix<double, row_major, map_std<std::size_t, double>> m (3, 3, 3 * 3);
for (unsigned i = 0; i < m.size1 (); ++ i)
for (unsigned j = 0; j < m.size2 (); ++ j)
m (i, j) = 3 * i + j;
std::cout << m << std::endl;
}
但它仍然是2D,我不知道如何使用它,例如3D(如果有这种可能性)?