필터 지우기
필터 지우기

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

조회 수: 1 (최근 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 CenterFile Exchange에서 Large 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