3

スライスをサポートするJava配列ライブラリはありますか?通常のnxn'xn''x ...配列が必要であり、指定された次元または次元全体から1つのスライスを取得する必要があります(つまり、範囲は必要ありません)。

メモ(潜在的なコメントへの返信を読む):

  • 通常のJava配列はそれをサポートしておらず、独自のスライシングライブラリを作成するつもりはありません。
  • (他の質問Collectionへのコメントで提案された)ベースを使用すると、問題がシフトします
  • System.arraycopyを使用しても、ループのネストが大幅に低下しないため、高次元では役に立ちません。
  • これは(一種の-長い話の)数値的な問題であるため、内部コードのOOアプローチは必ずしも最良のものである必要はありません-とにかく最も有用な抽象化はスライスに要約されます
  • スライスからのR/Wビューを好みます(R / Oコピーのみの場合は文句を言いません)

編集:残念ながら、オブジェクトを配列内に格納する必要があります-だけではありませんdouble

4

1 に答える 1

5

Vectorzは、スライスをサポートするベクトル/行列ライブラリであり、値の配列を使用して数値計算を行う場合に適していdoubleます。これは、3D モデリング、ゲイン、シミュレーション、または機械学習のコンテキストでのベクトル/行列演算用に特別に設計されています。

利点:

  • double非常に高速 (すべてがプリミティブとdouble[]配列に支えられている)
  • 100% ピュア Java
  • 主に操作として、任意のスライスとダイシングをサポートしO(1)ます (つまり、データのコピーは必要ありません) 。
  • スライスは完全に読み取り/書き込み可能です。つまり、スライスを使用して元の構造を変更できます
  • ベクトルを結合したり、サブベクトル ビューを取得したりすることもできます。
  • 対角行列などの数値計算に特化したクラス。

現在、0、1、および 2 次元の配列をサポートしています。より高次元の配列は計画されていますが、まだ実装されていません。

于 2013-02-16T12:09:48.953 に答える