0

複数の NxM マトリックスがあり、そのうちの 1 つを変数で選択したいと考えています。私の最善の推測は、使用boost::MultiArrayして NxMxP マトリックスを作成し、3 番目の次元で選択することでした。

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 がなくても可能ですか? 他の方法で変数を介してマトリックスを選択できますか?

4

1 に答える 1

1

3 次元配列を使用する代わりに、Boost マトリックスをそのままにして、それらへのマッパーを使用することはできませんか? その後、キャストは必要なく、問題はありません。

マッパーは、インデックスがキーになる基本的な配列にするか、C++ ライブラリcplusplus.com/reference/stl/mapを使用することができます。

于 2012-05-10T11:04:41.573 に答える