csvファイルの読み込みを速くする方法

63 ビュー (過去 30 日間)
Takao
Takao 2020 年 10 月 13 日
編集済み: Hiroyuki Hishida 2020 年 10 月 15 日
現在、1ファイル800MBほどあるテキストデータを読み込む作業をしています。
当然ながら、読み込みに掛かる時間が長く、1ファイル90秒ほど掛かっています。
この読み込み速度を速くする方法がないものでしょうか。
テキストデータの内容:約20,000,000行×8変数のカンマ区切り時系列データ
読み取りに使用している関数:readtimetable
(datastore/readやtextscanを使っての分割読み込みはかえって遅くなる結果となりました。)
他のプログラム言語ですと、マルチスレッドで処理することで速くなるケースがあるようです。
matlabでもParallel Computing ToolBoxを使うと速くできたりするものでしょうか。

回答 (1 件)

Hiroyuki Hishida
Hiroyuki Hishida 2020 年 10 月 14 日
編集済み: Hiroyuki Hishida 2020 年 10 月 14 日
こんにちは、
もし、同じファイルの読みこみでお困りであれば、mat化を試していただくのはいかがでしょうか?
matファイルをつくるために、一度はreadtableする必要ありますが、そのワークスペース変数をmat化しておけば、次回以降はreadtableではなくloadすることになります。
https://jp.mathworks.com/help/matlab/ref/save.html
いかがでしょうか?
菱田
  2 件のコメント
Takao
Takao 2020 年 10 月 15 日
菱田様
ご回答ありがとうございます。
mat化を試してみました。恐ろしく読み込みが速くなりました。
csvファイルの読み込み ⇒ 約90秒
matファイルの読み込み ⇒ 約7秒
(tic/tocで計測)
matファイルを作るのに時間は掛かりますが、その作業はプログラムで自動化しようと思います。
解決しそうです。ありがとうございました。
Hiroyuki Hishida
Hiroyuki Hishida 2020 年 10 月 15 日
編集済み: Hiroyuki Hishida 2020 年 10 月 15 日
よかったです。 matファイルの設定もあわせてご確認いただければと思います。
https://jp.mathworks.com/help/matlab/import_export/mat-file-versions.html
今後ともよろしくお願いします。
菱田

サインインしてコメントする。

カテゴリ

Help Center および File Exchangeデータのインポートとエクスポート についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!