我正在尝试下载此逗号分隔的信息并保存它,以便可以将其存储为矩阵,然后可以访问。到目前为止,我有代码,我认为应该将信息存储在名为 test.csv 的文件中,但我不确定:
>> urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Mar.csv','test.csv');
d = csvread('test.csv');
??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 1) ==> date-
Error in ==> csvread at 50
m=dlmread(filename, ',', r, c);
我收到上述错误。它使用 urlread 很好地读取数据。有谁知道正确的语法应该是什么以及如何将其存储为矩阵?提前致谢。
最佳答案
您可以直接从网络获取数据,无需使用 URLREAD 保存到文件:
webdata = urlread('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Mar.csv');
这将为您提供整个文件作为一个字符串,其中行由“\n”分隔。您可以通过多种方式处理它。例如:
tmp = textscan(webdata,['%s',repmat('%f',1,8)],'delimiter',',','headerlines',1);
date = tmp{1};
data = horzcat(tmp{2:end});
要获取列标题,您可以执行以下操作:
colheader = textscan(webdata,'%s',1,'delimiter','\n');
colheader = regexp(colheader{:},',','split');
colheader = colheader{:};
您还可以将数据转换为结构:
Data = cell2struct(tmp, genvarname(colheader),2);
关于matlab - 将来自网络源的逗号分隔的.csv数据存储到matlab中的矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257887/