datastoreによりデータの読み込み

11 ビュー (過去 30 日間)
Naoki Ishibashi
Naoki Ishibashi 2016 年 10 月 29 日
コメント済み: Naoki Ishibashi 2016 年 10 月 29 日
以下のコードで365個テキストファイルを読み込もうとしたら以下のエラーが出てしまいました、プロパティーを変更しなくてはいけないと考えているのですがうまくいかず何かアドバイス頂けると幸いです。 テキストファイルは添付のものと形式(区切り位置など)、データ数全て同じものがTA20040101.txt~TA20041231.txtです。
dsX = datastore ('TA2004*.txt');
dsX.MultipleDelimitersAsOne = true;
dsX.NumHeaderLines = 0;
x = readall(dsX);
y = reshape(x.Var1,10368,[]);
以下エラー
Error using datastore (line 165)
Cannot detect TextscanFormats from file: 'C:\Users\Naoki Ishibashi\Documents\MATLAB\HW3\TA2004\TA20040101.txt'. Specify TextscanFormats when you create the datastore. Verify the Text
Format and Advanced Text Format Properties.
Error in test (line 1)
dsX = datastore ('TA2004*.txt');
  2 件のコメント
Kojiro Saito
Kojiro Saito 2016 年 10 月 29 日
テキストファイルの添付が無いようなので、お手数ですがもう一度添付していただけますか? おそらくデータの区切りの指定などが必要なのですが、実際にデータを見たほうが早いですので。
Naoki Ishibashi
Naoki Ishibashi 2016 年 10 月 29 日
大変失礼致しました テキストデータ添付させて頂きます

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

採用された回答

michio
michio 2016 年 10 月 29 日
添付頂いた text ファイルは値がスペースで区切られ横一列に並んだデータの様です。 RowDelimiter オプションで「スペースで行を区切る」と認識させることで、すべてのデータを縦一列の形で読み取ることが出来ます。
dsX = datastore ('TA2004*.txt', 'ReadVariableNames', false, 'RowDelimiter', ' ');
x = readall(dsX);
y = reshape(x.Var1,10368,[]);
  2 件のコメント
michio
michio 2016 年 10 月 29 日
参考情報:
datastore のオプションの中でも経験上、下記の5つは要注目です。
  • NumHeaderLines — ファイルの先頭でスキップする行数
  • Delimiter — フィールドの区切り記号
  • RowDelimiter — 行区切り記号文字
  • Whitespace — 空白文字
  • MultipleDelimitersAsOne — 複数の区切り記号の取り扱い
オプションも多く、それぞれ一つづつ確認するのは最初は大変かと思いますが、一度慣れるとその他様々な形式のファイルに柔軟に対応できますので、是非一度挙動を確認してみてください。各オプション設定は
の2ページに例題も合わせて情報がありますので参考にしてください。
Naoki Ishibashi
Naoki Ishibashi 2016 年 10 月 29 日
できました、ご丁寧にご回答頂きありがとうございます。

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLarge Files and Big Data についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by