私は、マトリックス形式の大きなMATLABファイル(150MB)(つまり、4070x4070)を持っています。私はこのファイルをMATLABで作業する必要がありますが、このファイルをロードできないようです。私は "メモリ不足"エラーが発生しています。このサイズのファイルをロードできる方法はありますか?私は32ビットプロセッサを使用しており、2GBのRAMを持っています。助けてください、私はこの問題に対処することから疲れています。MATLABで大きなファイル(〜150MB)を読み込むにはどうしたらいいですか?
答えて
画像ファイルで、操作したい場合は、matlab block processingをお試しください。これを使用すると、ファイルの小さな部分を読み込むことになります。あなたの関数fun
は各ブロックに個別に適用されます。 (それを指摘するために@Nzbuuのおかげで)、それは文書化されていない機能のようです - 場合
B = blockproc(src_filename,[M N],fun)
それはxml
ファイルがある、SAX
と一緒XML DOM Node
モードを試してみてください。
また、あらゆる種類のテキストファイル(おそらくデータ量のため)の場合は、分割する外部ツールを試してください。
リリースR2011b(ver.7.13)より新しいオブジェクトmatlab.io.MatFileとMATFILEがコンストラクタとして追加されました。 MAT-ファイル内の変数の一部を読み込んで保存することができます。詳細は、ドキュメントを参照してください。ここでは、マトリックスの一部を読み込むための簡単な例です:
matObj = matfile(filename);
a = matObj.a(100:500, 200:600);
元のファイルは、MATファイルが、いくつかのテキストファイルでない場合は、部分的にそれを読んで、同じ変数にそれらの部品を保存するためにmatfile
を使用することができます後でアクセスできるようにMATファイルに保存します。コンストラクタでWritable
プロパティをtrueに設定することを忘れないでください。ここでは、テキストファイルをタブ区切りであり、唯一の番号が含まれていると仮定すると、
は、ブロック単位でデータを読み取り、MATファイルに保存するためのサンプルスクリプトです:
blocksize = 100;
startrow = 0;
filename = 'test.mat';
matObj = matfile(filename,'Writable',true);
while true
try
a = dlmread(filename,'\t',startrow,0); %# depends on your file format
startrow = startrow + blocksize;
matObj.a(startrow+(1:blocksize),:) = a;
catch
break
end
end
私は最新のリリースを持っていません今テストするが、うまくいくと思う。
また、ファイル全体を一度にメモリにロードすることなく、ファイルのブロックを読み込んで処理し、次のブロックに進むこともできます。
たとえば、「100倍の倍精度浮動小数点数のファイルをメモリにマップする」this exampleを参照してください。
私は以前のリリースでMATLABに登場したばかりのときにこのオブジェクトを試しました。興味深いことに、MATLABはファイル全体をメモリにロードしなければなりませんでした。私はMathworksのサポートに連絡し、彼らはそれを確認しました。彼らは基本的に、異なるアプリケーション間で同時にデータを共有する機能としてこの機能を促進しました。まあ、ものが変わったように見えます。 R2011aでもう一度試してみました。そして 'memmapfile'オブジェクトは300bしか占めていません。いい答え。 +1。ファイルはこのオブジェクト(バイナリのみ?)のための規則的な構造を持たなければならないので、入力ファイルはたぶん再フォーマットする必要があります。 – yuk
- 1. リッチテキストボックスに大きな(150MB)テキストファイルを読み込む
- 2. サーブレットフィルタからファイルに書き込んでEclipseで読み込むにはどうしたらいいですか?
- 3. pageloadに埋め込みルビのjavascriptファイルを読み込むにはどうしたらいいですか?
- 4. 読み込み時にコンテキストメニューを読み込むにはどうしたらいいですか?
- 5. ファイルを下から上、右から左に読み込むにはどうしたらいいですか?
- 6. swiftを使用してバンドルからAppleScriptファイルを読み込むにはどうしたらいいですか?
- 7. MATLABでCSVファイルを読み込む?
- 8. ルアで大きなファイル(ギグ以上)を読むにはどうしたらいいですか?
- 9. PHPで生成されたSVGファイルを読み込むにはどうしたらいいですか?
- 10. ファイルからカスタムDjangoタグを読み込むにはどうしたらいいですか?
- 11. ファイルから読み込まれたデータに応じて、ダイナミックバッファサイズの大きなファイルを読み込む方法。
- 12. Swift 3でCSSファイルをHTMLで読み込むにはどうしたらいいですか?
- 13. PHPでファイルに書き込むにはどうしたらいいですか?
- 14. C++で大きなファイルをランダムに読み込むとスローダウン
- 15. Visual C++ 2010プロジェクト(OpenGL)で3dsファイルを読み込むにはどうしたらいいですか?
- 16. 何千ものイメージのファイルをhtmlで読み込むにはどうしたらいいですか?
- 17. iOSアプリケーションでファイルを読み込んで読み込むにはどうすればよいですか?
- 18. MATLAB matファイルをRubyに読み込むことはできますか? Pythonで
- 19. phpのファイルを読み込むにはどうすればいいですか?
- 20. インターネットに接続していないときにファイルに書き込んでファイルから読み込む
- 21. ファイルをbashのマトリックスに読み込むにはどうしたらいいですか?
- 22. KeystoneJSでページを読み込む前にmongoからデータを読み込むにはどうしたらいいですか?
- 23. XMLファイルに書き込むにはどうしたらいいですか?
- 24. ReactJSの純粋なCSSをwebpackでコンパイルして読み込むにはどうしたらいいですか?
- 25. データベースから読み込んで大きなデータをローカルドライブに書き込む
- 26. ファイルから選択した値を読み込み、C++で新しいファイルに書き込む
- 27. パイプにさらに値を書き込んで読み込むにはどうすればいいですか?
- 28. 大きなJSONリストをPythonで読み込むにはどうすればよいですか?
- 29. 外部htmlファイルを読み込むにはどうしたらいいですか?
- 30. c# - コンソールからcharを読み込んで書き込むにはどうすればいいですか?
* .matファイル形式、または他の形式ですか? – hatboyzero
私は非常にオープンしたとき150メガバイトのファイルが2GBのメモリを埋めることに驚いています!負荷をかけようとする前に、あなたのマシンの空きメモリ容量はどれくらいですか?あなたが閉じることができる他のプログラムはありますか? – japreiss
これが.matファイルの場合、 'whos -file'も問題を引き起こすか、単に 'load'ですか? .matファイルではない場合は、ヘッダーテキストはありますか? –