問題タブ [binary-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.
c - バイナリ行列ベクトル乗算
符号なし 64 ビット整数として表される 8x8バイナリマトリックスを、符号なし char で表される 8 ビット ベクトルで乗算したいと考えています。ただし、他のいくつかの問題により、行列は列ごとに並べ替える必要があるため、簡単に乗算するためにバイトを簡単に一致させることはできません。
そのような計算を高速化する方法はありますか? 何十億もの計算が必要なため、すべての操作が重要です。
乗算は、2 要素フィールド (F-2) に対して行われます。
gnuplot - gnuplot のオクターブバイナリ行列
このオクターブ スクリプトの使用方法を理解するのに助けが必要です
http://www.gnuplotting.org/code/save_binary_matrix.m
gnuplot でプロットしたいバイナリ行列を生成します。オクターブ構文を理解するのに役立つWebリンクだけでも、どんな提案でも大歓迎です
ありがとう
マリアーノ
c++ - 2つのアレイのメモリアドレスのオーバーラップ
私はバイナリ行列に取り組んでいます。2つのアレイがオーバーラップしています。(アドレスを確認しました)これは、いくつかのサイズの行列でのみ発生します。したがって、間違った結果が得られます。newを使用して配列を割り当てようとしましたが、そうするとセグメンテーション違反が発生します。メモリの重複を回避する方法はありますか?私はg++コンパイラを使用しています。
これが私が配列を宣言した方法です
次のステップでは、それらすべてを初期化します。AとBはオペランドであり、Cは結果を保持します。
次の段階では、カスタムの乗算アルゴリズムを使用しています。これがスニペットです
私の観察Tab
によるとC
、重複しています。印刷してメモリアドレスを確認しました。これらは、2番目のレベルのforループの6回目の反復でオーバーラップします(n = 9、m = 3、size = 9、cnm = 3)。私はその間に使用していませんC
、私はそれを外側のループでのみ使用します。
excel - バイナリ マトリックスの同一行への ID の割り当て
1200x130 0-1 マトリックスがあり、一部の行は同一です (ある行から 4 つ、別の行から 8 つなど)。同じ ID を同一の行に割り当てる効率的な方法を見つけようとしています。
Excel で試したことは次のとおりです。行ごとに、k 番目の列のエントリに 2^k を掛け、すべての列を合計しました。理論的には、異なる行ごとに、これにより一意の ID が得られるはずですが、数値が非常に大きくなり、Excel がそれらの数値の比較を台無しにします。(3.234023490249 x 10^246 のように特定の桁まで格納し、残りの桁を無視するためだと思います。)
そこで、VBA を使用することにしましたが、考えられる唯一の方法は、すべての行と列を対で比較することです。これを処理するためのより効率的な方法があるはずだと思います。推奨事項はありますか?
(ExcelまたはVBA固有のソリューションを探しているわけではありません。推奨事項があれば役立ちます。)
前もって感謝します。
arrays - 行ごとにソートされたブール行列が与えられます。最大数が 1 の行を返す
行列の問題に遭遇しましたが、最適な解決策を見つけようとしていました。問題文は質問のトピックそのものです。さらに下を参照
私の解決策:行がソートされているので、各行で最初に 1 が出現するバイナリ検索を実行すると、1 のカウントは になりますtotal number of columns minus index of 1st 1
。
これは で実行O(m*logn)
できますが、線形時間で実行できるかどうかのロジックを知りたいと思っていました。
ありがとうございました!
matlab - Matlab: ボリュームのアウトラインからマスクを作成
以下で説明する問題の適切な解決策を見つけるのにしばらく苦労してきました。for ループを回避したいのですが、Matlab のスキルではそれ以外のことはできないと感じています。サイズ 329x230x105 の 3D 位置マトリックスがあります。これは、10000x7000x3100 メートルの 3D ボリュームを定義します。サブボリュームを除いて、ほとんどの行列要素はゼロです。
元のマトリックスと同じサイズのマスクを作成する必要があります。このマスクは大きなサブマティックに分割され、それぞれが 1000x1000x1000 メートルの通常のサブボリュームを定義し、少なくとも 1 つのオン要素 (非ゼロ) 元のマトリックスから。XY で表示:
したがって、最終結果は、マークされたセル (赤) 内のすべての要素の値が 1 で、外側の要素が 0 に設定されている 3D マスク (下の XY の図) です。
ボリューム バウンディング ボックスや凸包の頂点には関心がないことに注意してください。
よろしくお願いします。
追加情報、@grantnz への回答:
さて、次のコードがすべての状況で機能するかどうかはまだわかりませんが、これが私が行うことです (私のラップトップでは 10 秒近くかかります)。
algorithm - c を法とするバイナリ nxm 行列の数。各列の最大 k 個の連続する 1 が含まれます。
各列で最大 k 個の連続する値が 1 の nxm バイナリ行列の数を計算しようとしています。いくつかの調査の後、1列とn行のベクトルを見つけるだけで十分であることがわかりました。たとえば、p 個のベクトルがある場合、必要な行列の数は m^p になります。n と m が非常に大きい (< 2.000.000) ため、適切な解決策が見つかりません。答えを計算するのに役立つマトリックスを作成するために、再帰式を見つけようとしています。それで、何か解決策を提案してもらえますか?
matrix - Octave でスパースバイナリ行列を効率的に保存および操作する方法は?
GNU Octave でスパースバイナリマトリックスを操作しようとしていますが、予想よりも多くのメモリを使用しており、関連するスパース マトリックス関数が意図したとおりに動作しません。MATLAB での予想よりも高いスパース行列ストレージに関するこの質問が表示されます。これは、この行列がさらに多くのメモリを消費する必要があることを示唆していますが、この状況の一部 (のみ) を説明するのに役立ちました。
まばらなバイナリ マトリックスの場合、Octave に値の配列を格納しないようにする方法がわかりません(値は常に暗黙的1
に格納されるため、格納する必要はありません)。これはできますか?Octave は常に値配列のためにメモリを消費するようです。
状況を示す簡略化された例: ランダムな疎行列を作成し、それを「バイナリ」に変換します。
状況を示します。ストレージクラスspones()
の配列を作成し、すべてdouble
のインデックスが 32 ビット (つまり、
1
s を s としてdouble
) を不必要に格納すると、この 3% 疎オブジェクトによって消費される合計メモリの半分以上になります。
この質問を作成している間にこれを(あまりにも長く)いじった後、いくつかの部分的な回避策を発見したので、継続性のために質問の一部を「自己回答」(のみ)します(うまくいけば)が、わかりませんでした主な質問に対する適切な答えを出してください:
Octave で効率的に格納された ("no-/implicit-values") バイナリ マトリックスを作成するにはどうすればよいですか?
ストレージ形式に関する追加の背景情報は次のとおりです...
Octave のドキュメントによると、スパース行列のストレージ形式はCompressed Sparse Column (CSC)という形式を使用します。これは、次の配列を格納することを意味しているようです (前述の SO answerを拡張し、正規のYale 形式 labels
と列優先順の微調整を使用):
- 値(
A
)、ストレージ クラス サイズのゼロ以外の数 (NNZ) エントリ。 - 行番号(
IA
)、インデックス サイズの NNZ エントリ (うまくいけばint64
、しかし多分int32
); - 各列の開始(
JA
)、列数にインデックス サイズの 1 エントリを加えたもの)
この場合、バイナリのみのストレージの場合、配列 ( ) の格納を完全に回避する方法があることを願っていますA
が、それがわかりません。
r - R プログラミングでルール トランザクション データをアイテム マトリックスに変換する
以下のようなトランザクション形式で 100,000 行のデータセットがあります
以下のようにマトリックス形式に変換したい(またはTRUE / FALSEフラグ)
次の手順を試しました
しかし、私のリスト変換では、出力を次のように取得しています
したがって、一部の行は完璧ですが、一部の行では、一意の ID が \t および \n を使用してムービー リストに追加されています。
以下の形式のリストが欲しい 9C05-EE9B44E8C18F c("Bruce Almighty","Iron Man","Toy Story")
このようにして、必要な結果を簡単に達成できると思います。あなたの助けを本当に感謝します.