問題タブ [dot-product]

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 に答える
97 参照

arrays - 3D グリッドのドット積の関数を定義する最良の方法を見つける

三次元ドメインで次の関数を構築しようとしています。

ここに画像の説明を入力

ここここに画像の説明を入力で、 は定数ベクトル、ここに画像の説明を入力は位置ベクトル、ここに画像の説明を入力は定数、ここに画像の説明を入力は時間です。

ここに画像の説明を入力は size のベクトル、[1 3]は3 次元領域の点を表すここに画像の説明を入力size の配列、は定数、は size の配列です。[NX*NY*NZ 3]ここに画像の説明を入力ここに画像の説明を入力[1 NT]

以下が問題の設定です。

実際、次のループは機能しますが、非常に遅いです (~200秒)。

2 番目の次元で使用してベクトルを使用arrayfunして繰り返すことを考えましたが、との乗算のために何をすべきかわかりません。krepmatXct

すべてのポイントとすべての時間に対して関数を定義する効率的な方法は何でしょうか? たとえば、この関数の出力は size の配列のように見えます[NX*NY*NZ NT]

0 投票する
0 に答える
852 参照

image - matlabプログラムの遅延を減らすためのimreadコマンドの代替手段はありますか?

このパス G:\newdatabase\ に 2900 枚の画像があります。画像の読み取りに時間がかかりすぎています。内積の場合も時間がかかりすぎています。

質問:

1.パフォーマンスを向上させる imread コマンドの代替手段はありますか?

2.パフォーマンスを向上させるドットコマンドの代替手段はありますか?

私が試したソースコード:

私が試したソースコード:

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

python - dot(A,B,3) に相当する Numpy

次のように、2 つの 3 次元行列があるとします (この matlab の例http://www.mathworks.com/help/matlab/ref/dot.htmlから取得):

3 番目の次元に沿ってペアワイズ ドット積を取りたい場合は、matlab で次のようにすることができます。

結果は次のようになります。

numpy での同等の操作、できればベクトル化されたオプションは、配列全体に double for ループを記述する必要がないようにするためのものです。np.tensordot私は何をすべきか、何をすべきかを理解できないようですnp.innerが、それらはオプションかもしれません。

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

opencl - OpenCL カーネルは特定のデータ型で動作しますが、他のデータ型では動作しません

私は OpenCL を学ぼうとしています。現在、さまざまなカーネルを作成する練習をしています。縮約法を使用して内積を作成しようとしたときに、理解できない問題に遭遇しました。int 入力と出力を使用してコードを実行すると、正常に動作します。すべての int 型を (入力と出力の) float 型に変更すると、近いがわずかにずれている結果が得られます。これがなぜなのか、何が原因なのか、誰でも理解できますか?

ホストコードはこちら

そして、これがカーネルコードです。

私はそれが非常にばかげていると確信していますが、私はそれを理解していません.

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

c - MPI - 並列内積計算

入力として 2 つのファイル (それぞれがベクトルを表す) を受け取り、それらの間の内積を計算するプログラムを変更するのに苦労しています。並行して実行されるはずですが、各ファイルのポイント数が利用可能なプロセッサの数で割り切れない可能性があり、各プロセスがファイル内の誤った位置から読み取る可能性があると言われました。つまり、プロセッサが 4 つある場合、最初の 250 ポイントは正しく読み取られて計算される可能性がありますが、2 番目のプロセッサは同じ 250 ポイントを読み取って誤った結果を返す可能性があります。これが私がこれまでやってきたことです。私が行った変更はすべて記載されています。

それらの変更は別として、ここからどこへ行くべきかわかりません。このプログラムで、2 つのテキスト ファイルを入力として並列処理を使用して 2 つのベクトルの内積を正しく計算するにはどうすればよいですか? それぞれに 100000 ポイントが含まれているため、ファイルを手動で変更することは実際的ではありません。

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

matlab - Matlab:行列の各行の Argmax と内積

=X in R^(n*m)W in R^(k*m)whereの 2 つの行列がありk<<nます。をXx_iの iw_j番目の行、W の j 番目の行とします。 x_i ごとに、最大化する j を見つける必要があります。<w_j,x_i>

X のすべての行を反復処理する方法がわかりませんが、W のすべてを毎回反復処理せずに最大内積を見つける方法はありますか?

単純な実装は次のようになります。

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

java - ある角度での壁のボール反射が機能しない

ボールを壁で跳ねさせようとしています。壁は任意の角度に設定でき、ボールは任意の角度で壁に当たることができます。ボールには速度ベクトルがあります。ボールが衝突する壁の法線を計算して正規化しました。以下のこのコードは、内積を計算するために使用するものです。

どういうわけか、ボールは高速で奇妙な方向に跳ね返ります。これは、反射速度を計算する主な関数です。

startX、startY、stopX、および stopY は壁の座標です。

誰かが私が間違っていることを知っていますか?

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

arrays - Fortran SUM コマンドの結果が単精度配列で 2^24 を超えるようにする方法

メモリ割り当てを確認するために、単精度配列に単位値を設定し、 コマンドSUMDOT_PRODUCTコマンドで問い合わせます。これらの組み込み関数は、16777216 (= 2^24) でカウントを停止します。これらのコマンドで数十億の要素をカウントするにはどうすればよいでしょうか? DOループを避けることを好みます。これは、精度の高い配列では問題になりません。

出力: