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

1 visualización (últimos 30 días)
Naoki Ishibashi
Naoki Ishibashi el 29 de Oct. de 2016
Comentada: Naoki Ishibashi el 29 de Oct. de 2016
以下のコードで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 comentarios
Kojiro Saito
Kojiro Saito el 29 de Oct. de 2016
テキストファイルの添付が無いようなので、お手数ですがもう一度添付していただけますか? おそらくデータの区切りの指定などが必要なのですが、実際にデータを見たほうが早いですので。
Naoki Ishibashi
Naoki Ishibashi el 29 de Oct. de 2016
大変失礼致しました テキストデータ添付させて頂きます

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by