問題タブ [matrix]
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.
math - 行列の対角線を不規則な配列に変換していますか?
次の問題に対する非力ずくの解決策を考え出そうとしています。任意のサイズの行列が与えられた場合:
次のように、その対角線をベクトルのリストに変換します。
(この例では、左下から右上に向かって作業します)
左の列と一番上の行を反復する以外に、これを行うエレガントな方法はありますか?
matlab - Matlabスワップ
行列内の特定の数値を同じ行列内の特定の数値と交換する関数を作成しようとしています。たとえば、A = [1 2 3; 1 3 2]で始める場合、B = [2 1 3; 2 3 1]、matlabに1を2に交換するように指示するだけです。何かアドバイスをいただければ幸いです。ありがとう!
matrix - D プログラミング言語用の線形代数ライブラリ
最大約 100 x 100 の行列で行列演算を行うためのパッケージを探しています。
少なくとも、逆数、乗算、転置を行う必要があります。より高いパフォーマンスよりも、よりカプセル化されたインターフェイスを好みます。
java - Java で大規模なデータ構造を処理する
非常に大きなマトリックスで作業する必要がある Java アプリケーションに取り組んでいます。たとえば、2 つの 1000 万 * 1000 万の行列を乗算します。もちろん、Java ヒープには、これらの行列の 1 つを格納するだけでも十分なスペースがありません。私は何をすべきか?データベースを使用して行列を保存し、必要なすべての部分をメモリに取り込み、それを次々と乗算する必要がありますか?
python - Pythonでグラフをクラスタ化するにはどうすればよいですか?
G をグラフとします。したがって、G はノードの集合とリンクの集合です。グラフをすばやく分割する方法を見つける必要があります。私が現在取り組んでいるグラフには 120*160 ノードしかありませんが、別のコンテキスト (医学ではなく Web サイト開発) で数百万のノードを持つ同等の問題にすぐに取り組んでいる可能性があります。
だから、私がしたことは、すべてのリンクをグラフマトリックスに格納することでした:
ここで、ノード s がノード t に接続されている場合、M は位置 s,t に 1 を保持します。M が対称 M[s,t]=M[t,s] であり、各ノードが M[s,s]=1 にリンクしていることを確認します。
よく覚えているのですが、M に M を掛けると、結果は 2 つのステップで到達した頂点を結ぶグラフを表す行列になります。
したがって、行列内のゼロの数が減少しなくなるまで、M をそれ自体で乗算し続けます。これで、接続されたコンポーネントのリストができました。次に、このマトリックスをクラスター化する必要があります。
今のところ、アルゴリズムにはかなり満足しています。簡単で、エレガントで、かなり速いと思います。この部分で悩んでいます。
基本的に、このグラフを接続されたコンポーネントに分割する必要があります。
すべてのノードを調べて、それらが何に接続されているかを確認できます。
しかし、行を並べ替えて行列をソートするのはどうでしょうか。しかし、それが可能かどうかはわかりません。
以下は、これまでのコードです。
編集:
SVD 分解を使用することが提案されています。これは、5x5 グラフの問題の簡単な例です。これを使用するのは、19200x19200 の正方行列ではクラスターが見にくいためです。
基本的にここには 4 つのクラスターがあります: (0),(1,3),(2),(4) しかし、このコンテキストで svn がどのように役立つかはまだわかりません。
perl - バイナリ ファイル内のマトリックスを Perl にマッピングする
生のバイナリ形式の行列を含む 14 MB のファイルがあります。私はそれを丸呑みして配列の配列のようなものを持ちたいので、いくつかの値を読み取ることができます。マトリックスのサイズを考えると、私のためにすべての作業を行う魔法のPerlモジュールを見つけたいと思っていました:)
しかし、私はそれを見つけることができず、それを行うためのより明白な方法を見逃していると思われます. PDL::IO::FlexRaw は私が必要としているものに近いですが、F77 によって追加された奇妙な文字の警告について少し混乱しています。
マトリックスはバイナリ ファイルで、生の形式で、64 ビット浮動小数点数です。バイナリ ファイルの最初の 8 バイトは、行列の最初の「セル」(1,1) です。次の 8 バイトは、2 番目のセル (2,1) です。ヘッダーもフッターもありません。私はその次元を知っているので、モジュールに「64000 バイトごとに行がある」と伝えることができます。
私はtie::mmapArrayを見ていますが、それを機能させることができるかどうかわかりません。lseek() を前後に使用して、必要な 8 バイトを見つけてから unpack() した方がよいのではないでしょうか?
それを行う最善の方法は何ですか?
f# - F# で行列を反転するにはどうすればよいですか?
F# を使用して基本的な OLS 回帰を実行する必要があります。これを行うには、いくつかの線形代数関数が必要ですが、そこにあるものについて混乱しています。行列を反転する方法が見つかりません。というライブラリのドキュメントがいくつかありますがMicrosoft.FSharp.Math.LinearAlgebra
、それがもう存在するかどうかはわかりません。
visual-studio-2005 - レポート マトリックス フィラー
レポート (VS2005) にマトリックスがあります。使用可能なデータがない場合でも、マトリックスにデフォルトの 12 行を表示したいと考えています。私はこれを行う方法を理解していないので、グリッドの下に長方形のグループを作成します。これらの長方形の各行は、マトリックスの行数に基づいて可視性が変更されます。
これに関する問題は、これらの四角形が非表示の場合でも存在し、マトリックスがそれらを押し下げたために空白のレポートの 2 ページ目を作成することです。
私の質問は、これらの非表示の長方形を削除する方法、またはマトリックスに最小行数を 12 にする方法です。