Matrix
Cを使用して(パッケージから)dgCMatrixクラスのスパース行列を操作する方法について、誰かがヒント/ポインタを教えてくれますか? C++ を使用した処理の例をいくつか見つけました (RCppEigen
特に使用) が、C を使用してそれを行う方法を教えてくれるものを見つけることができませんでした。私は C++ に慣れていないので、C に固執するつもりです。
いくつかのコンテキスト:巨大な疎行列 (20kX100k) の各行に対していくつかの操作を実行しています。ループを使用しfor
て各行を反復すると、非常に遅くなります。そこで、関数を定義してapply
、行列の各行で使用しようとしましたが、行列apply
の転置が得られ、重要なことに、結果の行列はスパース行列ではなく、通常の行列になります)。したがって、必要な行列を取得するためにこれ (非スパース行列) を転置し、この結果の行列をMatrix
クラスのオブジェクトに再度変換する必要があります。控えめに言ってもあまり効率的ではないので、Cを使用してやりたいことをやろうとしています.