reading the data from a csv file with headers
493 次查看(过去 30 天)
显示 更早的评论
Hi, I have a csv file similar to this:
a b c d
12 35 86 4
How can I read the data for one of the headers? Knowing the name of the file and the headers, is it possible to read the number associated with that header?
0 个评论
采纳的回答
Star Strider
2018-6-11
Example —
To get the data in ‘c’:
Tbl = readtable('YourFile.csv');
cv = Tbl.c; % Easiest, Most Direct
Alternatively, you can recover the column associated with each header (column name) by using ‘Properties.VariableNames’ to retrieve them. Then use strcmp to get the logical vector of matching column names, and find to get the column number. :
VarNames = Tbl.Properties.VariableNames; % Recover Variable Names (Column Titles)
ColIdx = find(strcmp(VarNames, 'c')); % Return Column Index For Variable Name ‘c’
Then use ‘ColIdx’ to access the column data in variable ‘c’.
Experiment to get the result you want.
10 个评论
Star Strider
2018-7-26
The ‘serialnumber’ is a hexadecimal number that is read as a string in the cell array. You can retrieve it as a string easily, and you do not have to do any conversions:
Tb = readtable('configuration.csv');
Vars = Tb.Properties.VariableNames;
serialnumidx = find(contains(Vars,'SerialNumber'));
serialnumv = Tb{1,serialnumidx};
serialnum = serialnumv{1};
serialnum =
'231A'
I have no idea how you are getting the data from your table, or which serial number you want (there are 2 in this file). This is how I would do it.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!