如何使用c ++ boost映射矩阵例如3D,4D?

时间:2015-10-25 15:47:08

标签: c++ boost matrix 3d sparse-matrix

我有问题与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(如果有这种可能性)?

0 个答案:

没有答案