Clear Filters
Clear Filters

複数データのインポートと統合

32 views (last 30 days)
Yu
Yu on 27 Aug 2021
Commented: Yu on 30 Aug 2021
ある観測データがあり、1時間ごとにファイルが分かれており、ファイル名はそれぞれ異なっています。(ファイル名は連番ではないものもあります)
これらのファイルデータを全てインポートして、全データを統合して分析やplotを作成したいと思っていますが、どんなふうにしたら簡単にまとめられるか思いつきません…。
よい方法をご存知の方がいらっしゃいましたらご教示ください。
完成イメージはこんな形です。

Accepted Answer

Toru Ikegami
Toru Ikegami on 27 Aug 2021
Edited: Toru Ikegami on 27 Aug 2021
こんにちは,
同じ形式のファイルをある程度の数処理するのでしたら,データストアを利用してみるのはいかがでしょう.データストアの概要はドキュメントの 「データストア入門」を参照してください.
読み込みたいファイルが全て 'dataFolder' という名前のフォルダに格納されているとすると,次の2行で,フォルダにある全てのファイルを読み込み,データを結合したテーブル変数 dataTbl を生成することができます.
ds = tabularTextDatastore('dataFolder');
dataTbl = readall(ds);
上の2行が基本になるのですが,フォルダの中の特定の拡張子を持つファイルのみを処理するとか,読み込む際のデータの型を指定するなど,様々なオプションを利用することが出来ます.「データストア入門」と,tabularTextDatastore のドキュメントを参考にされると良いと思います.
添付されていたファイルに対して有用かと思われるオプションをつけると次のようになるでしょうか.
ds = tabularTextDatastore('dataFolder','TextType','string','DatetimeLocale','ja_JP');
  5 Comments
Toru Ikegami
Toru Ikegami on 30 Aug 2021
すみません.お伝えした例だと fileDataStore を構成する際に,ファイルの拡張子を指定していませんでした.以下試してみていただけますか?
ds = fileDataStore("dataFolder","ReadFcn",@(x) readtable(x,opt),...
"UniformRead",true,"FileExtensions","txt");
拡張子無指定ですと,フォルダ内にある全てのファイルを読み込むので,MATLABが生成する.DS_Store というファイルをも読み込んで,他のファイルから読み込んだデータと結合しようとします.この過程でエラーが発生すると考えられます.
Yu
Yu on 30 Aug 2021
".txt"
で無事読み込めました。
何度も丁寧にご対応くださりありがとうございました!

Sign in to comment.

More Answers (0)

Categories

Find more on table in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!