Azzera filtri
Azzera filtri

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

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

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su table in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!