2

win7(64ビット)で実行されているmatlab 64ビットにデータファイル(csv)を読み込もうとしていますが、メモリ関連のエラーが発生します。ファイルサイズは約3GBで、最初の列に日付(dd / mm / yyyy hh:mm:ss)が含まれ、別の2つの列に買値と売値が含まれています。memoryコマンドは次を返します:

  Maximum possible array:              19629 MB (2.058e+010 bytes) *
  Memory available for all arrays:     19629 MB (2.058e+010 bytes) *
  Memory used by MATLAB:                 522 MB (5.475e+008 bytes)
  Physical Memory (RAM):               16367 MB (1.716e+010 bytes)

*  Limited by System Memory (physical + swap file) available.

ここの誰かが、可能な最大配列サイズが19.6 GBである場合、約3GBのデータ配列をインポートするときにmatlabがメモリエラーをスローする理由を説明できますか。プロセス/アプリのメモリ管理の経験がほとんどないため、これが経験者への簡単な質問である場合はお詫び申し上げます。

このデータセットをmatlabワークスペースにロードできるようにするための解決策を誰かが提案してくれれば幸いです。

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

4

2 に答える 2

1

私はメモリ管理の専門家ではありませんが、経験から、3GBのテキストファイルをインポート/エクスポートすると、あらゆる種類の問題が発生することがわかります。

データを読み取る前に外部ツールを使用してデータを分割するか、大規模なデータセットにより適した別の形式でデータを保存することを検討します。個人的にはhdf5、過去に使用したことがあります---これは大量のデータセット用に設計されており、によってもサポートされていmatlabます。

それまでの間、これらのリンクが役立つ場合があります。

MATLABで大きなCSVファイルを操作する

MATLABでの大規模なデータセットの効率的な処理

于 2012-10-10T13:33:07.860 に答える
0

matlab で巨大なテキスト ファイルを読み取る方法を示す前に投稿しました。memmapfile()このテクニックも役立つかもしれません。

于 2012-10-10T13:37:20.607 に答える