16進数・カンマ区切​りで構成されたデータ​をreadtable​で読み込む

11 views (last 30 days)
凌 大井川
凌 大井川 on 30 Mar 2021
Commented: 凌 大井川 on 30 Mar 2021
16進数で書かれたカンマ区切りの.txtデータがあり、
これをreadtableコマンドでテーブルとして読み込んだところ、
データ内で00と0E等と文字と数字が混在している列において、0Eのように文字で書かれたところがNaNで読み込まれてしまいます。
また、00のところは0と読み込んでしまっています。
.txtデータの中身をそのままの形でカンマ区切りでテーブルとして読み込むことは不可能でしょうか?
.txtファイル(一部)は下記のようになっており
60 55 FF 25 8
60 AB FF 2 8
60 E5 FF 3 8
60 F3 FF 2 8
60 FA FF 4 8
60 FB FF 0E 8
60 FC FF 6 8
60 FD FF FF 7
これをreadtableで読み込むと
60 '55' 'FF' 25 8
60 'AB' 'FF' 2 8
60 'E5' 'FF' 3 8
60 'F3' 'FF' 2 8
60 'FA' 'FF' 4 8
60 'FB' 'FF' NaN 8
60 'FC' 'FF' 6 8
60 'FD' 'FF' NaN 7
となってしまいます。

Answers (1)

Kojiro Saito
Kojiro Saito on 30 Mar 2021
インポートする際のオプションでカラムのデータ型を指定できるので、VariableTypesにcharかstringを指定してみてはいかがでしょうか。
例:
filename = 'test.txt';
opts = detectImportOptions(filename);
opts.VariableTypes = {'string','string','string','string','string'};
t = readtable(filename, opts);
  5 Comments
凌 大井川
凌 大井川 on 30 Mar 2021
まとめてデータ型を指定する方法への回答、見落としてました。ありがとうございます!
ちなみに、これでインポートした各列に対して、hex2decが適応できないのですがどうすれば良いでしょうか?(別の質問として投稿させていただいております。)
凌 大井川
凌 大井川 on 30 Mar 2021
どうやらデータの最終行に、<missing>という要素が含まれた行があり、これが存在するせいで変換できなかったようです。
この行を削除することで正常に変換することができました。

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!