datastoreによりデータの読み込み
2 次查看(过去 30 天)
显示 更早的评论
以下のコードで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
2016-10-29
テキストファイルの添付が無いようなので、お手数ですがもう一度添付していただけますか? おそらくデータの区切りの指定などが必要なのですが、実際にデータを見たほうが早いですので。
采纳的回答
michio
2016-10-29
添付頂いた text ファイルは値がスペースで区切られ横一列に並んだデータの様です。 RowDelimiter オプションで「スペースで行を区切る」と認識させることで、すべてのデータを縦一列の形で読み取ることが出来ます。
dsX = datastore ('TA2004*.txt', 'ReadVariableNames', false, 'RowDelimiter', ' ');
x = readall(dsX);
y = reshape(x.Var1,10368,[]);
2 个评论
michio
2016-10-29
参考情報:
datastore のオプションの中でも経験上、下記の5つは要注目です。
- NumHeaderLines — ファイルの先頭でスキップする行数
- Delimiter — フィールドの区切り記号
- RowDelimiter — 行区切り記号文字
- Whitespace — 空白文字
- MultipleDelimitersAsOne — 複数の区切り記号の取り扱い
オプションも多く、それぞれ一つづつ確認するのは最初は大変かと思いますが、一度慣れるとその他様々な形式のファイルに柔軟に対応できますので、是非一度挙動を確認してみてください。各オプション設定は
の2ページに例題も合わせて情報がありますので参考にしてください。
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File 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!