numericでない列をnumericに変換してcsvreadしたい
Afficher commentaires plus anciens
CSVファイルは要素として、{ 25, 31, 84, "00", "60", 0, 12}の複数行から成り立っています。4列目と5列目の””を削除して、{ 25, 31, 84, 0, 60, 0, 12}としてCSVをreadしたいです。但し、"00"や"60"は、数値の部分は可変になっており、"36"だったりします。また、常に4列目と5列目は、ダブルコーテーションになっております。
Réponse acceptée
Plus de réponses (2)
Y.Suzuki
le 14 Déc 2017
0 votes
1 commentaire
mizuki
le 14 Déc 2017
>> class(tbl)
importfile.m の86行目に、
csvreadanswers = table;
という行があります。これは、出力引数 csvreadanswers が table 型ということを定義しています。
エラーが起こったときには、問題をまず細かく分けて一つずつ解決していく必要があります。今回の場合、
>> tbl(2,4)*3
が実行できないということですが、このような場合、
>> tbl(2,4)
が実行できるかを見ていきましょう。
>> tbl(2,4)
ans =
table
VarName4
________
0
となっていますよね。これも数値型ではなく table 型になってしまっているため、直接掛け算をすることができません。(例えばVarName4 * 3 はできない)
これを解決する方法は、table 型から数値型に直す方法と、table 型から数値だけを抜き出す方法の2つがあります。
1. table 型から数値型に直す方法
table2array 関数を使用します。ただし、table 型が持っているヘッダ情報などは消えますのでご注意ください。
>> num = table2array(tbl)
2. table 型から数値だけを抜き出す方法
中括弧 {} を使用します。
>> tbl{2,4}
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!