データが欠落している可能性のある CSV ファイルがあり、データは文字と数値の両方です。これに対処する最善の方法は何ですか?
4482 次
2 に答える
5
次に例を示します。
ファイル.csv
name,age,gender
aaa,20,m
bbb,25,
ccc,,m
ddd,40,f
readMyCSV.m
fid = fopen('file.csv','rt');
C = textscan(fid, '%s%f%s', 'Delimiter',',', 'HeaderLines',1, 'EmptyValue',NaN);
fclose(fid);
[name,age,gender] = deal(C{:});
データの読み取り:
>> [name num2cell(age) gender]
ans =
'aaa' [ 20] 'm'
'bbb' [ 25] ''
'ccc' [NaN] 'm'
'ddd' [ 40] 'f'
于 2011-08-09T14:57:27.713 に答える
1
@Amro が提案したのは、値が欠落している csv ファイルを読み取る最も一般的な方法です。あなたの場合、データ型は文字と数字の両方であるため、各列の適切な形式を指定する必要があります。したがって、関数は次のようになります。
C = textscan(fid, '%d32 %c %d8 %d8 %d32 %f32 %f %s ','HeaderLines', 1, 'Delimiter', ',');
その他のデータ形式については、こちらをご覧ください: http://www.mathworks.com/help/techdoc/ref/textscan.html
于 2011-08-09T20:18:17.200 に答える