問題タブ [matrix-multiplication]

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 投票する
2 に答える
2168 参照

java - 矩形/格子乗算

Javaで長方形/格子乗算を実装しようとしています。知らない人のために、これは短いチュートリアルです。

単一の配列を使用して2桁の乗算を格納し、それにゼロをシグマ追加するいくつかの方法を試しました。すべての数値が乗算されたら、配列から 2 つの要素を選択し、シグマ値を追加してさらに 2 つの数値をフェッチし、すべての数値がフェッチされるまで同じことを繰り返します。

ロジックは正常に動作しますが、数字のセット (4 桁 * 3 桁) ごとに異なるゼロの数が得られるため、維持する必要があるゼロの正確な数を見つけることができません。

誰か助けてくれませんか?

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

matlab - MATLAB: 行列から要素ごとの乗算への変換

私はこのコードを持っています:

行列 KM は、ポテンシャル V の形状を動的に変更します。Fx I は、ode ソルバーで使用します。私が望むのは、Fx(A,B) を記述できるようにすることです。ここで、A,B は行列です。V=(x^2+y^2) の結果を V=(x.^2+y.^2) に変換する必要があります。何か案が?

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

opengl-es - OpenGL ES 2.0で効率的な固定機能パイプラインを実装しますか?

openGL 2.0アプリでglTranslate()、glRotate()、glScale()などの固定関数メソッドを使用したいと思います。私は行列クラスを実装する必要があることを知っています-そしてこれを実行しました。今の私の質問は効率についてです。次のようなものを使用できるようにするには:

少なくとも3つの行列乗算を実行する必要があると思います(射影があり、モデルビューが行列化され、これがモデルビュー用であると仮定します)。最初は次のようになります:Identity-Matrix *Rotation-Matrix-2番目は次のようになります:ActualMatrix * ScaleMatrixそして最後は次のようになります:projectionMatrix * ActualMatrix(そしてこのImは均一な値としてシェーダーに渡されます)。

したがって、私のVertexshaderは次のようになります。

OpenGL ES 1.1でも同じように行われますか?glRotate、glScale、glTranslate...呼び出し-それは私にとって非常に思えます。それとももっと良い方法はありますか?(おそらく行列の乗算が少ないですか?)

このトピックに関するヘルプをいただければ幸いです。読んでくれてありがとう

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

opengl-es - Matrixmultiplication - glTranslate の独自の実装? 間違ったマトリックス

次の射影行列があると仮定します(gluPerspective(40, 1.0, 0.2, 200.0);単位行列を使用して計算されます):

glTranslatef(0.0, 0.0, -10.0);このマトリックスでコマンドを実行したいとします。openGL ES 1.1関数を使用すると、次のようになります(私の意見では正しいようです):

しかし、独自の実装 (openGL ES 2.0) を使用すると、奇妙な動作が発生します。

私のコードは、Apples openGLES1/2 Example とこのサイトhttp://iphonedevelopment.blogspot.com/2009/06/opengl-es-from-ground-up-part-7_04.htmlに非常に似ています:

これを2日間デバッグしていますが、何が欠けているのかわかりました...何かアイデアはありますか?

0 投票する
4 に答える
7596 参照

matlab - 各列のMATLAB行列乗算とforループ

2つの行列を乗算するとき、次の2つのオプションを試しました。

1)

2)

両方の解像度にメモリを事前に割り当てました。そして驚くべきことに、私はオプション2の方が速いことがわかりました。

誰かがこれがどのようにそうなのか説明できますか?

編集:私は試しました

0 投票する
3 に答える
7972 参照

ios - UIPinchGestureRecognizerとUIPanGestureRecognizerをマージできますか?

UIPinchGestureRecognizerとUIPanGestureRecognizerを組み合わせた単一の組み合わせジェスチャレコグナイザーを作成できるかどうかを理解しようと少し苦労しています。

ビューの変換にはパンを使用し、ビューのスケーリングにはピンチを使用しています。ビューに適用される結果の最終変換行列を導出するために、増分行列連結を実行しています。このマトリックスには、スケールと変換の両方があります。個別のジェスチャレコグナイザーを使用すると、動きやスケーリングが不安定になります。私が欲しいものではありません。したがって、1つのジェスチャ内でスケールと変換の連結を1回処理したいと思います。誰かがこれを行う方法に光を当てることができますか?

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

c++ - 行列乗算の実行時間 Python < C++ < Matlab - 説明

Mの行列があり16384 x 81ます。計算したいM * M.t(結果は になります16384x16384)。

私の質問は:誰かが実行時間の違いを説明してもらえますか?

C++ で OpenCV を使用すると、次のコードに18 秒かかります

Python では、次のコードは0.9 秒18.8 秒しか かかりません(以下のコメントを参照)

MATLAB では、次のコードは17.7 秒かかります


私の唯一の推測は、それがメモリの問題であり、どういうわけか Python がスワップ スペースを回避できるということでした。topしかし、私が見ているとき、私はすべてのメモリを使用しているのを見ていないので、その日は勝つC++ applicationと思っていました. C++洞察をありがとう。

編集

操作の時間だけを計るように私の例を修正した後、コードは Python でも 18 秒かかるようになりました。何が起こっているのかよくわかりませんが、十分なメモリがあれば、すべて同じように動作するようです。

行数が 8192 の場合のタイミングは次のとおりです。 C++: 4.5 秒 Python: 4.2 秒 Matlab: 1.8 秒

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

opengl - Opengl関数によるMultiply Transformation Matrix( glMultMatrixf() )と自作関数の違い

どうも、OpenGLで行列をベクトルに掛けようとしているのですがfunction(OpenGLUtility::VectorMultiMatrix4d())、opengl関数を呼び出すことで、自作の掛け算を呼び出して得たレンダリング結果が違うことがわかりましglMultMatrixf()た。画面に描かれた 2 本の線は同じではありません。

以下のように2つの異なる方法を呼び出してコードを配置しました。関数 OpenGLUtility::VectorMultiMatrix4d() は単純で、列優先の乗算のみです。

誰でもこれについてアドバイスをもらえますか?どうもありがとう。


コード 1:

///

コード 2

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

opengl - ローカライズ マトリックスに混乱 - OpenGL に渡された場合は機能しますが、独自の演算を行う場合は機能しませんか?

ここで私の問題が何であるかについて、私は非常に混乱しています。グローバル/ワールド座標をオブジェクトのローカル座標空間に変換するマトリックスを設定しました。この変換行列は、4 つのベクトル (前方、上、横、および位置) からのオブジェクト情報を使用して構築されます。glMultMatrixf()このローカリゼーション マトリックスは、各オブジェクトの描画時に に渡されます。これにより、各オブジェクトの周りに単純な軸を描画して、ローカル座標系を視覚化できます。これはまったく問題なく期待どおりに機能し、オブジェクトがワールド内で移動および回転すると、ローカル座標軸も移動および回転します。

問題は、この同じ行列を列ベクトルで乗算すると (あるオブジェクトのグローバル位置を別のオブジェクトのローカル座標系に変換するために)、結果がまったく期待どおりにならないことです。例えば:

私のローカライズ マトリックスは次のとおりです。

位置列ベクトルを入力します。

そして、次の出力を取得します。

この時点でのオブジェクトの位置は (-50.8, 8.533, -11.602, 1) であるため、x 座標の出力が -99.2362 ほど大きくなることはあり得ないことがわかっています。さらに、2 つのグローバル ポイント間の距離と、ローカライズされたポイントと原点の間の距離を見つけると、それらは異なります。

これを Matlab で確認したところ、行列の乗算が正しいようです (注: Matlab では、最初にローカライズ行列を転置する必要があります)。そのため、ローカライズ マトリックスが正しく構築されていないと考えざるを得ませんが、OpenGL はこのマトリックスを使用してローカル座標軸を正常に描画しています。

この質問には不必要な詳細を含めないようにしていますが、もっと必要だと感じたら、遠慮なく質問してください。:)

どうもありがとう。