問題タブ [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.

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

matlab - MATLABでのforループのベクトル化

これが可能かどうかはわかりませんが、MATLABについての私の理解は確かに良くなる可能性があります。

プログラムにかなりのボトルネックが発生しているため、ベクトル化したいコードがいくつかあります。これは最適化ルーチンの一部であり、実行する短期平均(STA)、長期平均(LTA)、および感度(OnSense)の多くの可能な構成があります。

時間はベクトル形式で、FL2onSSはメインデータ(Nx1 double)、FL2onSSSTAはそのSTA(NxSTA double)、FL2onSSThreshはそのしきい値(NxLTAxOnSense double)です。

アイデアは、4Dになる赤いアラームマトリックスを計算することです-プログラムの残りの部分全体で使用されるalarmStatexSTAxLTAxOnSense。

私は現在、もう少し速度を上げるためにこの繰り返し関数を持っていますが、全体をベクトル化できれば明らかに良いでしょう。言い換えれば、より良い解決策があれば、機能を維持する必要はありません。

コードは十分に単純なので、これ以上説明しません。特定の行が何をしているのかを解明する必要がある場合は、私に知らせてください。

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

matlab - ループを使用せずに行列のサブ要素に関数を適用するための正しい構文は何ですか?

たとえば、2x4 マトリックスを取り込んで 2x1 マトリックスを出力するなど、かなり些細なことを行う関数 (GetDepth) を定義しました。次に、それを適用したい2x4xnマトリックスがあり、2x1xnマトリックスの結果を期待しています。

ループを使用せずに関数を行列に適用する正しい構文は何ですか?

編。要求に応じて、これが私がやろうとしていることの例です:

現在、ループして2x1xn出力にフィードしています

0 投票する
12 に答える
108230 参照

matlab - MATLAB で行列のすべての行/列に関数を適用するにはどうすればよいですか?

ベクトル内のすべてのアイテムに関数を適用するには、たとえば 、v + 1または関数 を使用できますarrayfun。forループを使用せずに、行列のすべての行/列に対してそれを行うにはどうすればよいですか?

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

matlab - 次のループはベクトル化できますか?

次の機能を実行する for ループがあります。

M x 8 行列を取得し、次のようにします。

  1. それをサイズ 512 要素のブロックに分割します (つまり、行列の X x 8 == 512 であり、要素数は 128,256,512,1024,2048 になる可能性があります)。
  2. ブロックを 1 × 512 (要素数) の行列に変形します。

  3. 行列の最後の1/4を取り、前に置きます。Data = [Data(1,385:512),Data(1,1:384)];

以下は私のコードです:

500 万の要素でこのループを実行すると、1 時間以上かかります。できるだけ速くする必要があります(秒単位)。このループはベクトル化できますか?

0 投票する
6 に答える
10882 参照

matlab - MATLAB: 時系列の各 1 分間隔の平均を計算する

タイムスタンプ ベクトル (秒単位) と測定された値のベクトルの 2 つのコンポーネントでそれぞれ記述された一連の時系列があります。時間ベクトルは不均一です (つまり、不規則な間隔でサンプリングされます)。

値の1分間隔ごとの平均/ SDを計算しようとしています(X分の間隔を取り、その平均を計算し、次の間隔を取ります...)。

私の現在の実装ではループを使用しています。これは私がこれまでに持っているもののサンプルです:

より高速なベクトル化されたソリューションがあるかどうか疑問に思っています。上記のサンプルよりもはるかに長い時間をかけて処理する多数の時系列があるため、これは重要です..

どんな助けでも大歓迎です。


フィードバックをありがとうございました。

t常に単調増加 (ソート) されるように生成される方法を修正しましたが、これは実際には問題ではありませんでした..

また、これを明確に述べていないかもしれませんが、私の意図は、任意の間隔の長さを分単位で解決することでした (1 分は単なる例です)。

0 投票する
5 に答える
1184 参照

x86 - myNum + = a [b [i]] *c[i];をベクトル化することは可能ですか。x86_64で?

x86_64で以下をベクトル化するためにどの組み込み関数を使用しますか(ベクトル化が可能である場合)?

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

matlab - ループや信号処理ツールボックスのないMATLABの平均フィルター

データセットに平均フィルターを実装する必要がありますが、信号処理ツールボックスにアクセスできません。forループを使用せずにこれを行う方法はありますか?これが私が働いているコードです:

編集:

mervのソリューションを実装した後、組み込みのフィルターメソッドは元の信号より遅れます。これを回避する方法はありますか? 代替テキスト

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

r - R のデータ フレームの行に列名の一部を配置するより良い (ベクトル化された) 方法はありますか

私は、溶解/キャスト操作の結果についていくつかの統計を実行することで得られた R のデータ フレームを持っています。公称値を含むこのデータフレームに行を追加したいと思います。その公称値は、各列の名前に含まれています

したがって、Var A_100 列に「100」、Var B_5 に「5」を含む新しい行を作成したいと考えています。現在、これは私がやっていることですが、これを行うためのより良いベクトル化された方法があるに違いないと確信しています。

通常、16 ~ 24 の列があります。何か案は?

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

windows - Intel Visual FORTRAN for X64 によるコードのベクトル化

Windows Server 2003 Enterprise X64 Edition で Intel Visual FORTRAN を使用して fortran90 コードをコンパイルしています。32 ビット構造のコードをコンパイルし、自動および手動のベクトル化オプションを使用する場合。コードはコンパイルされ、ベクトル化されます。8 コア システムで実行すると、コンパイルされたコードは CPU の 70% を使用し、ベクトル化が機能していることを示しています。しかし、64 ビット コンパイラでコードをコンパイルすると、コードがベクトル化されていると表示されますが、実行すると、CPU 使用率が約 12% しか表示されず、8 つのコアのうち 1 つのコアが完全に使用されます。は、コードがベクトル化されていることを示していますが、ベクトル化は機能していません。

X64 Edition Windows 上にあり、逆の結果が表示されることを期待していたので、私にとっては奇妙です。64 ビット Windows で 64 ビット アーキテクチャ用にコンパイルされたコードを実行する方がよいと考えました。

コンパイルされたコードが 64 ビットのコンパイル済みバージョンで複数のコアをフルに活用できない理由を知っている人はいますか?

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

python - numpy/scipy で for ループをベクトル化しますか?

クラス メソッド内にある for ループをベクトル化しようとしています。for ループの形式は次のとおりです。一連のポイントを反復処理し、特定の変数 (以下では「self.condition_met」と呼ばれます) が true であるかどうかに応じて、ポイントで関数のペアを呼び出し、結果をリストに追加します。 . ここでの各ポイントは、リストのベクトルの要素です。つまり、array([[1,2,3], [4,5,6], ...]) のようなデータ構造です。問題のある関数は次のとおりです。

self.condition_met は my_inefficient_method が呼び出される前に設定されているため、毎回チェックする必要はないようですが、これをどのように記述すればよいかわかりません。ここには破壊的な操作がないため、この全体をベクトル化された操作として書き直すことができるようです-それは可能ですか? これを行う方法はありますか?