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

10 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.

Categories

Find more on cell 配列 in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!