0

boost::ublas で指定された 1xm ベクトルから nxm 行列を定義する方法を探しています。次のコードを試します

boost::numeric::ublas::vector<double> v(100);
boost::numeric::ublas::matrix<double> m(10, 100);
std::copy(v.begin(), v.end(), m.begin2());

ただし、これはベクトルを行列の最初の行にコピーするだけです。私が望むのは、v を行に複製して、M の各行を v と同一にすることです。したがって、各行をループしてコピーを 10 回実行する以外に、それを行うより良い方法はありますか? ありがとう。

4

1 に答える 1

0

ループの短い、次のようにすることができます。

m = outer_prod(scalar_vector<double>(10, 1), v);

ただし、パフォーマンスに関しては、おそらく最適ではありません。

于 2012-06-21T11:59:57.887 に答える