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

10 ビュー (過去 30 日間)
凌 大井川
凌 大井川 2021 年 3 月 30 日
コメント済み: 凌 大井川 2021 年 3 月 30 日
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
となってしまいます。

回答 (1 件)

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

サインインしてコメントする。

カテゴリ

Help Center および File Exchangecell 配列 についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!