string型16進数データを10進数に変換
Afficher commentaires plus anciens
16進数が1byte毎にカンマ区切りとなっている計4byteの.txtデータを、
opts = detectImportOptions(filename);
opts.VariableTypes = {'string','string','string','string'};
data = readtable(filename,opts);
で読み込み、
data.Var1 = data.Var1 + data.Var2 + data.Var3 + data.Var4
dataVar2 = []
dataVar3 = []
dataVar4 = []
として、一つの列に結合した後、
data.Var1 = hex2dec(data.Var1)
で10進数に変換しようとすると、
string要素はサポートされていませんというエラーメッセージが出てしまいます。
hex2decのドキュメンテーションページを見ると、String 配列は使用可能な様に書いてありますが、どうして使用できないのでしょうか?
また、10進数に変換するにはどうしたら良いでしょうか?
Réponses (1)
凌 大井川
le 30 Mar 2021
0 votes
1 commentaire
Kojiro Saito
le 30 Mar 2021
了解いたしました。
実際のファイルでは列数が多いとのことなので、data.Var1 = data.Var1 + data.Var2 + data.Var3 + data.Var4やdata.Var2 = []などの部分が煩雑になりそうです。例えば、table2arrayで一旦tableから配列に変換して、joinで1行のstring配列にする方法もあります。
ご参考までに。
filename = 'test.txt';
opts = detectImportOptions(filename);
opts = setvartype(opts, 'string');
t = readtable(filename, opts);
strarray = table2array(t);
strarray = join(strarray, "");
D = hex2dec(strarray);
Catégories
En savoir plus sur データ型の変換 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!