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 で Data Import and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!