プログラミングに関する一般的な質問ですが、Matlab に関する特定の考慮事項がある場合があります。
非常に大きなデータ ファイルをインポートします。ファイル全体をメモリにインポートしてからサブマトリックスに分割するか、n 列ごとに新しいマトリックスにインポートする方が良い方法/高速/効率的ですか?
私の推測では、すべてをキャッシュにロードしてから処理する方が高速になると思いますが、それは根拠のない推測にすぎません。
プログラミングに関する一般的な質問ですが、Matlab に関する特定の考慮事項がある場合があります。
非常に大きなデータ ファイルをインポートします。ファイル全体をメモリにインポートしてからサブマトリックスに分割するか、n 列ごとに新しいマトリックスにインポートする方が良い方法/高速/効率的ですか?
私の推測では、すべてをキャッシュにロードしてから処理する方が高速になると思いますが、それは根拠のない推測にすぎません。
私の経験から、最良のアプローチは、csvread (textscan を使用する dlmread を使用するため、時間のペナルティはそれほど大きくない) を使用して一度解析することです。これはもちろん、非常に大きなファイルが RAM の空き容量よりも大きくないことを前提としています。非常に大きなファイルがRAMよりも大きい場合(たとえば、31GBのファイルを解析する必要がありました)、fopenを使用するよりも、行ごとに(またはチャンク、好きなようにブロックして)読み取り、これらを書き込み可能なマットファイルに書き込みます。このようにして、理論的にはファイルシステムによって制限される巨大なファイルを書き込むことができます.