1

データセットで固有ライブラリを使用して類似度行列を作成しようとしています。csvファイルを固有行列に読み込んだだけですが、matlabの顧客として、bsxfunのようなもの、またはユークリッド距離計算によってインスタンス間の距離を定義するものを探していることを知っています.どうすれば解決策やどのソース、関数が役立つかを知ることができます自分 ?

4

1 に答える 1

3

サンプルが行列 D に行単位で格納されていると仮定すると、次のことができます。

VectorXd N = D.rowwise().squaredNorm();
MatrixXd S = N.replicate(1,n) + N.transpose().replicate(n,1);
S.noalias() -= 2. * D * D.transpose();
S = S.array().sqrt();

これは、という事実を利用してい|x-y|²=x²+y²-2x'yます。noalias() ステートメントは Eigen の最適化に過ぎず、この製品ではエイリアシングのリスクがないため、一時的なものは必要ありません。.array() ステートメントは、すべての関数が係数ごとに適用される配列の世界に切り替わります。

于 2013-08-22T22:30:37.490 に答える