按变量从boost :: MultiArray中选择NxM子矩阵

时间:2012-05-10 10:46:29

标签: c++ boost multidimensional-array matrix boost-multi-array

我有多个NxM矩阵,想要通过变量选择其中一个。我最好的猜测是使用boost::MultiArray创建一个NxMxP矩阵,然后通过第三维选择。

我使用array_view实现了它:

typedef boost::multi_array<double, 3> threeDimMatrix;
typedef threeDimMatrix::index_range rangeDim;
threeDimMatrix hypotheses(boost::extents[nInputs][nStates][nChan]);
threeDimMatrix::array_view<2>::type hypothesesAdd =
     hypotheses[boost::indices[rangeDim(0,2)][rangeDim(0,2)][ IDX ] ];

不幸的是,我想继续将此代码作为boost::matrix继续使用我的代码并且不知道如何操作。我可以做演员吗?

或者没有multi_array甚至可能吗?我可以通过变量以某种方式选择矩阵吗?

1 个答案:

答案 0 :(得分:1)

不是拥有一个三维数组,你不能保持你的Boost矩阵并且有一个映射器吗?然后不需要演员表,你不应该有任何问题。

映射器可以是索引作为键的基本数组,也可以使用C ++库cplusplus.com/reference/stl/map