問題タブ [eigen3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
73 参照

eigen3 - eigen3 の head 関数が間違った結果を生成する

ベクトル s のサブセットを取得したいのですが、次のコードでは正しい結果が得られませんでした。でも書いたら

そうです。次のコードが間違っているのはなぜですか? ありがとう!

0 投票する
1 に答える
835 参照

c++ - テンプレート化されていない固有ベクトルを関数引数として渡し、関数でそれを変更するc ++

派生クラスの関数メンバーを実装しています (基本クラスで仮想として宣言されています)。引数の 1 つは vectorXd で、操作の結果が格納される場所です。

「パラメーターとして固有型を取得する関数の記述」( http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.html ) を読み、そのハックはテンプレート化された関数に依存し、可能なパラメーターとして一般的な固有オブジェクトに焦点を当てています。私の場合、仮想とテンプレートを混在させることはできないようですので、うまくいかないと思います。

一方、私の引数は常に VectorXd 型になることがわかっており、関数内でサイズ変更が不要になるように、関数に入る前に適切なサイズにサイズ変更することもできます。ベクトルを const として参照渡しし、const_cast を使用して必要な変更を加える方法を試していますが、それでもリンク エラーが発生します。

エラー LNK2001: 未解決の外部シンボル "public: virtual void __thiscall problem::f(class method *,class Eigen::Matrix const &,class Eigen::Matrix const &)" (?f@problem@@UAEXPAVmethod@@ABV? $Matrix@N$0?0$00$0A@$0?0$00@Eigen@@1@Z)

ここで、'problem' は基本クラス、'f' は関数、'method' は別のクラスです (関数内にもその型のオブジェクトが必要です)。

私が持っている問題の定義では:

派生: 問題の定義には、次のようなものがあります。

「y」は、結果を保存する必要がある場所です。これを達成する方法について何か提案はありますか? ありがとうございます。

0 投票する
1 に答える
773 参照

c++ - Eigen によるインプレース LDLT 分解

非常に大きな対称行列 (~800mb) を使用して線形代数を実行しており、いくつかの異なる分解を試しています。現在、私は LDLT を実装しています。これを利用して、行列の上三角を L^T で上書きすることにより、メモリ要件を半分にしたいと考えています。Eigen のドキュメントにはこれを実行する方法が記載されていませんが、内部名前空間にはいくつかの隠しメソッドがあり、私が望むことを実行できる可能性があります。

メソッドは、次の構造体template<> struct ldlt_inplace<Lower>http://eigen.tuxfamily.org/dox/LDLT_8h_source.htmltemplate<> struct ldlt_inplace<Upper>に あります。

これらのメソッドが私が望むものであるというのは正しいですか? それらをどのように使用しますか?それらは内部的なものであり、変更や非推奨になる可能性があるため、使用を避けるべきですか?

0 投票する
1 に答える
1879 参照

matlab - Eigen ライブラリに収まる行列のサイズはどれくらいですか?

現在、300000 x 300000 マトリックスのような大規模なデータに取り組んでいます。「メモリ不足」エラーのため、matlab で処理するのは非常に難しいため、EIGEN を使用することにしました。行列サイズの固有値に制限はありますか?

0 投票する
1 に答える
1559 参照

c++ - パラメータとしての固定サイズ固有型

固定サイズの固有型を取る関数を作成しようとしています (ただし、float/double などのスカラー型でテンプレート化されています)。http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.htmlを読みましたが、完全に機能させることはできません。

関数定義は次のとおりです。

今、私はこれを次のように使用しています:

ある種の を使用する必要があると思いますがMatrixBase<Derived>、関数は長さ 3 のベクトルに対してのみ意味があるため、サイズを制限するにはどうすればよいでしょうか。

編集:関数を次のように再定義しました。それはうまくいきますが、より良い方法はありますか?

0 投票する
2 に答える
2817 参照

c++ - 排他的論理和、否定論理和を使用した bool 乗算 (固有行列ライブラリを使用)

ハミングエラー修正コードを実装しようとしています。これを行うには、bool Vector (データ) を取得し、bool Matrix (ハミング生成行列) で乗算し、XOR 演算を実行する必要があります (OR のように見えるものの代わりに)。 Eigen のデフォルトの bool 動作)。私がやっていることの例は、この簡単なチュートリアルにあります: http://michael.dipperstein.com/hamming/

必ずしも Eigen を使用する必要はありません。解決策があれば、Eigen 以外のものを提案してください。

たとえば、コンパイルはできるが正しく動作しない C++ コードは次のようになります。

現在の結果: 1 1 1 1 0 1 0
しかし、必要: 1 0 1 1 0 1 0

違いは、デフォルトの動作が乗算であり、次に各乗算を OR することです。OR ではなく XOR が必要なので、Eigen でこれを行う最善の方法は何ですか?

これが意味をなさない場合は、喜んで詳しく説明してください。

ところで、それが問題かどうかはわかりませんが、G ++を使用してMacBook Airに取り組んでいます。今日Eigenをダウンロードしたので、おそらく最新のものです(eigen3)

ありがとう、
キース

更新:以下の受け入れられた解決策を考えると、人々の参照として正しいコードを再投稿したかった:

0 投票する
1 に答える
1276 参照

c++ - A がスパースで、固有値を使用して xA=b 形式の線形連立方程式を解くことはできますか?

MATLAB コードを C++ に変換する必要があります。C++ には、xA=0 の形式の線形方程式が含まれています。

固有値は線形方程式 Ax=b を扱えることを知っています。私は尋ねています: C++ (Visual Studio 2010) の Eigen を使用して、線形方程式 xA=b のシステムを解く方法はありますか? A はスパース行列です。そうでない場合、どのライブラリを使用できますか?

助けてくれてありがとう。

0 投票する
1 に答える
812 参照

c++ - Eigen::Ref<> と std::reference_wrapper<> の長所/短所は何ですか?

Eigen Eigen::Ref<>3.2 でstd::reference_wrapper<>導入され、C++11 で導入された は、非常によく似た目標を達成しているようです。

明らかに、Eigen::Ref<>std::reference_wrapper<> のように C++11 依存関係を導入しませんが、他に何を考慮する必要がありますか? (私にとって、C++11 への依存は問題ではありません。)

参照は次のとおりです: (だからメタ、LOL):

0 投票する
2 に答える
612 参照

c++ - Matlab の次の Matrix コードを C++ の Eigen に変換する際の問題

H、W、R、V は行列で、それぞれのサイズで既に初期化されています。「beta」は int、「myeps」は float です。行列の実装には、現在 Eigen ライブラリを使用しています。ただし、この Matlab コードを Eigen ベースの C++ コードに正常に変換するための構文がわかりません。

Matlab コード

C++ コード (これまでに試したこと)

このコードは正しいですか?

参考までに - これは NMF アルゴリズム (ベータ発散に基づく非負行列因数分解) のステップです。

どんな助けでも大歓迎です。