問題タブ [vectorization]
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.
optimization - マトリックスの複数のサブマトリックスへの同時割り当て。ベクトル化されたインデックスによる可能な最適化
要素を行列の部分行列に割り当てる for ループをベクトル化する賢い方法はありますか?
最初は、2 つの for ループがありました。
次に、内側のループをベクトル化して、コードが読み取れるようにしました。
これにより CPU 時間が 90% 以上短縮されたので、外側のループでも同じことができるかどうか疑問に思いましたが、U マトリックス内の (6x1) マトリックスに割り当てるため、少し難しいようです。私は試した
i:i+5 は必要な最初の 6 つのインデックスしか取得しないためです。
また、 reshape() 関数を使用して行列をベクトルに変換しようとしましたが、要素の複数のブロックを一度に割り当てるのはまだ難しいようです。コードにはそのような for ループが全部で 3 つあるので、代替の最適化は何らかの形でそれらを並列化することだと思います。ただし、並列ツールボックスにアクセスできない場合は、可能であればベクトル化が適切なソリューションのように思えます。
このコードは、グリッド上の 6 つの連立方程式を解くための数値有限差分法のサブルーチンの一部であるため、この質問は、連立方程式、特に偏微分方程式で行列計算を行うすべての人に関連する可能性があります。コードを最適化するための提案をいただければ幸いです。
math - 2点の方向
高校の数学の概念が忘れられているので、ここでお願いします。
私が2つのポイントを持っている場合p1(x1,y1)
、p2(x2,y2)
方向は、、P1-->p2
それはをp1
指しp2
ます。この方向をベクトルで表すには、Vector(x2-x1,y2-y1)
それですかVector(x1-x2, y1-y2)
?
ちなみに、ベクトルを正規化する目的は何ですか?
matlab - FFTと周波数の変更、およびFORループのベクトル化
FFTと周波数の変更およびforループのベクトル化
あいさつ
以下のコードでfftとフーリエ級数展開FORループの組み合わせを使用して信号の周波数を増減できますが、信号/配列が大きい場合は非常に遅くなります(1x44100の配列は完了するのに約2分かかります) )forループに関係していることは確かですが、パフォーマンスを向上させるためにベクトル化する方法が正確にはわかりません。これは、3〜6分の長さのオーディオ信号で使用されることに注意してください。1x44100アレイはわずか1秒で、完了するまでに約2分かかります
推奨事項
これは、誰かが出力を見たい場合のプロットの写真です。これは正しいです。FORループは本当に本当に遅いです。
c++ - ユニオンを使用してクラスメンバー変数に同じメモリを割り当てる
既存の Vector クラスをベクトル化しようとしています
これらのメンバー変数にアクセスする他のクラスに影響を与えずに、クラス メンバーをベクトル化しようとしています。
しかし、メンバ名 X、Y、Z が見つからないため、コンパイル エラーが発生します。変数を取得する別の方法はありますか?
参考までに、このvector float
型はIBM™ Cell Broadband Engine™ Software Development Kit V3.0 for Multicore Accelerationからのものです。
r - Rでベクトル化された関数を並列化する最も簡単な方法は何ですか?
私は非常に大きなリストX
とベクトル化された関数を持っていますf
。計算したいのですf(X)
が、シングルコアで計算すると時間がかかります。私は48コアサーバーを持っています(アクセスできます)。の計算を並列化する最も簡単な方法は何f(X)
ですか?以下は正しい答えではありません。
上記のコードは確かにの計算を並列化しますが、のすべての要素に個別にf(X)
適用することによって並列化します。これはのベクトル化された性質を無視し、結果として物事を速くするのではなく遅くする可能性があります。に要素ごとに適用するのではなく、適度なサイズのチャンクに分割して適用したいと思います。f
X
f
f
X
X
f
X
では、手動で48個の同じサイズのサブリストに分割し、それぞれに並行して適用f
してから、手動で結果をまとめる必要がありますか?または、このために設計されたパッケージはありますか?
誰かが疑問に思っている場合に備えて、私の特定のユースケースはここにあります。
r - ベクトル内の要素のインデックスを見つけるためのR関数はありますか?
Rには、要素x
とベクトルがありv
ます。v
に等しい要素の最初のインデックスを見つけたいx
。これを行う1つの方法は次のとおりですwhich(x == v)[[1]]
。しかし、それは非常に非効率的です。それを行うためのより直接的な方法はありますか?
x
ボーナスポイントについては、がベクトルの場合に機能する機能はありますか?つまり、の各要素の位置を示すインデックスのベクトルを返す必要がありx
ますv
。
r - ベクトル化された並列max()とmin()はありますか?
data.frame
列「a」と「b」のあるaがあります。列aとbの中で最高と最低を含む「high」と「low」という列を追加したいと思います。
データフレームの行をループせずにこれを行う方法はありますか?
編集:これはOHLCデータ用であるため、高列と低列には、列全体ではなく、同じ行のaとbの間の最高と最低の要素が含まれている必要があります。これがひどい言い回しならごめんなさい。
matlab - 両方のベクトルが特定の値を持つ位置の数をカウントするにはどうすればよいですか?
A
とB
は 2 つのベクトルですlength(A) = length(B)
。A
とのすべての要素はまたは のB
いずれ0
か1
です。両方のベクトルが値を持つ位置の数を 1 行でカウントするにはどうすればよい1
ですか?