read csv data with numbers, characters and text
41 次查看(过去 30 天)
显示 更早的评论
Greetings
Does anyone have any idea on how to import numerical data from a csv file of the following format:
STATION DATE LATITUDE LONGITUDE ELEVATION NAME PRCP PRCP_ATTRIBUTES TMAX TMAX_ATTRIBUTES TMIN TMIN_ATTRIBUTES
BC000068026 01/02/32 -18.367 21.85 1000 SHAKAWE, BC 0 ,,Q
I'm attaching a sample file
Matlab2016b
Thank you very much in advance
6 个评论
Image Analyst
2023-5-22
If the format is too custom and varies from file to file, you may have to write your own custom reader where you read a line at a time and parse it appropriately.
采纳的回答
Cris LaPierre
2023-5-23
编辑:Cris LaPierre
2023-5-23
Have you tried readtable? What didn't work about it? I get the results I would expect. It even successfully ignored the delimiters inside quotes.
The file has 12 delimited fields, the names of which are given in the first line of your file.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1391464/image.png)
The "SHAKAWE, BC" AND ",,Q" are each considered single variables (NAME and PRCP ATTRIBUTES). When I use readtable in R2016b with no options, I get this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1391469/image.png)
Notice the warning about dates. I suspect it should be dd/MM/yy. Use the options to fix that.
opts = detectImportOptions('sample.csv');
opts = setvaropts(opts,'DATE','InputFormat','dd/MM/yy');
data = readtable('sample.csv',opts)
3 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!