問題タブ [pre-allocation]

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

matlab - MATLAB で数値以外のベクトルを事前に割り当てるにはどうすればよいですか?

私はしばしば次のようなことをしていることに気づきました:

これは機能的ですが、最適ではありません -processedDataベクターはループ内で成長しています。速度のために事前割り当てを検討する必要があることもmlint警告しています。

データが のベクトルである場合、次のint8ようにすることができます。

連結するのではなく、ベクトル スロットを埋めるようにループを変更します。

後で構造体またはオブジェクトを保持できるように、ベクトルを事前に割り当てる方法はありますか?


更新: Azim の回答に触発されて、ループの順序を単純に逆にしました。最後の要素を最初に処理すると、デバッガーが確認するように、最初のヒットでベクター全体の事前割り当てが強制されます。

これにはprocess()、MATLABprocessedDataが実際のオブジェクトでの最初の書き込みで初期化するため、 によって返されるすべてのオブジェクトが有効な引数なしのコンストラクターを持っている必要があります。

mlint配列の増加の可能性についてまだ不平を言っていますが、それは逆ループの反復を認識できないためだと思います...

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

arrays - Matlabでアレイを事前に割り当てますか?

単純なforループを使用して大量の画像をトリミングし、それらをセル配列に格納しています。私はメッセージを受け取り続けます:

変数croppedSagは、ループが繰り返されるたびにサイズが変わるように見えます。速度を事前に割り当てることを検討してください。

これは、MATLABでコーディングしているときに何度か見たことがあります。私はいつもそれを無視してきましたが、たとえば10,000枚以上の画像がある場合、事前に割り当てるとどれだけ実行時間が長くなるのでしょうか。

また、ドキュメントで事前割り当てについて読んだことがありzeros()、その目的で使用すると書かれています。以下のコードにそれをどのように使用しますか?

ドキュメントの例に完全には従いませんでした。

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

javascript - count を使用したレコードの事前割り当て

レコードの事前割り当てによりパフォーマンスが向上する可能性があることを読みました。これは、特に時系列データセットの多くのレコードを処理する場合に役立ちます。

約束を守らなければならないことがこれを遅くする可能性があり、毎回カウントをチェックすると、レコードを事前に割り当てることのパフォーマンス上の利点が無効になる可能性があることを少し心配しています。

これを処理するためのよりパフォーマンスの高い方法はありますか?

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

r - read.csv からのデータのプログレッシブ追加

その月の各日の csv ファイルを読み込んでデータ フレームを作成したいと考えています。私の毎日のcsvファイルには、同じ行数の文字、倍精度、および整数の列が含まれています。特定の月の最大行数を知っており、列数は各 csv ファイルで同じままです。CSV ファイル名のリストを含む fileListing を使用して、月の各日をループします (たとえば、1 月の場合)。

質問の一部を理解したので質問を修正して申し訳ありませんが(当たり前)、rbindを使用してデータフレームの下部にデータを徐々に挿入する必要がありますか、それとも遅いですか?

ありがとうございました。

BSL

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

arrays - NaN または Inf 配列の事前割り当て

配列の索引付けは、効率的な配列の事前割り当てに使用できます。例えば

ただし、これは NaN または Inf では機能しません

なんで ?

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

filesystems - ext4 で事前割り当てを無効にする

preallocext4 の機能を無効にする必要があります。しかし、と呼ばれるマウント機能はありませんdisprealloc。事前割り当て機能を無効にする方法があるかどうか知りたいです。

この点に関する提案は大歓迎です

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

python - Pythonで(0,0)タプルの64 x 64 numpyを初期化しますか?

タプルなど、任意のデータ構造の numpy を作成することは可能ですか? はいの場合、書き出さずに初期化するにはどうすればよいですか? (明らかに、64 x 64 の配列を書き出す必要はありません)

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

matlab - フィールド変数をmatlabに保存する際に事前割り当てを行う方法

for ループで計算されたフィールド変数を値を追加してベクトルに格納していますが、パフォーマンスのために最初に事前に割り当てたいと思います。この操作をベクトル化しようとしましたが、達成したいことが得られません。以下に操作例を載せておきます。これで事前割り当てを行うにはどうすればよいですか?スピードのために。

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

matlab - ループごとにリセットされる変数を事前に割り当てるように、matlab が警告するのはなぜですか?

私のプログラムには、Matlab が事前割り当てを警告するセル変数があります。コードの単純な形式は、次のような sth です。

aまず、各ループでリセットされるため、事前に割り当てる必要がある理由を知りたいです。第二に、それを事前に割り当てる方法がわかりません。そうしようとすると、Matlab から別の警告が表示され、「変数は事前に割り当てられているようですが、ここでは事前割り当ては推奨されません」というメッセージが表示されます。

ループの前に次のコードを使用します。

もう少し詳しく言うと:

b条件が真でない場合は 1x1 セル配列にしたいのでa、各ループで空の var にリセットする必要があります。

アップデート:

リーの答えにほのめかされた方法を見つけましたが、その理由はまだわかりません。警告を解決するa = [a(:),{'def'}];代わりに使用します。a = [a,{'def'}];