0
我在以下格式的文件夹中有一堆csv文件,我想从每个文件(第17行的数字部分)中提取完整的时间序列,识别重复记录并按照年份和日期从小到大的顺序合并它们。 具体csv文件是通过以下从一个文件夹中的多个csv文件读取时间序列:MATLAB
wnsnum 1
paroms Waterhoogte
loccod HOEKVHLD
locoms Hoek van Holland
rks_begdat 1993 07 09
rks_begtyd 00:00
rks_enddat 2014 31 12
rks_endtyd 23:50
begdat begtyd enddat endtyd rkssta
1993 07 09 00:00 2007 31 12 23:50 D
2008 01 01 00:00 2009 30 12 23:50 G
2009 31 12 00:00 2009 31 12 23:50 O
2010 01 01 00:00 2011 17 06 18:40 G
2011 17 06 18:50 2011 18 06 18:50 O
2011 18 06 19:00 2014 31 12 23:50 G
datum tijd bpgcod waarde kwlcod
1993 07 09 00:00 -70 0
1993 07 09 00:10 -69 0
1993 07 09 00:20 -68 0
1993 07 09 00:30 -67 0
1993 07 09 00:40 -68 0
1993 07 09 00:50 -70 0
1993 07 09 01:00 -69 0
1993 07 09 01:10 -69 0
1993 07 09 01:20 -68 0
1993 07 09 01:30 -67 0
1993 07 09 01:40 -65 0
1993 07 09 01:50 -64 0
1993 07 09 02:00 -62 0
1993 07 09 02:10 -61 0
1993 07 09 02:20 -61 0
1993 07 09 02:30 -59 0
1993 07 09 02:40 -58 0
1993 07 09 02:50 -55 0
谷歌驱动器链接现在我的代码工作在以下方式访问:
SL_files = dir(sprintf('%s%s%s',fullfile(dirName),'\','*.csv'));
for idx = 1:size(SL_files,1)
disp(SL_files(idx,1).name)
fid = fopen(sprintf('%s%s%s',fullfile(dirName),'\',SL_files(idx,1).name));
data = textscan(fid, '%s %f %f %f %f %f %f', ...
'Delimiter',',', 'MultipleDelimsAsOne',1,'headerlines',16);
fclose(fid);
end
现在我可以读取该文件。现在我的问题是如何将多个文件的数据组合成一个矩阵,并按照年份和日期值按升序排列。谢谢!
我将您的数据复制到一个csv文件中,发现没有问题。可能在您的原始文件中,这些空格并不总是“空格”。你能上传你的文件吗? – Yvon
如果您查看参数'MultipleDelimsAsOne',它可能会有所帮助。无论如何,我无法解决你的问题。 – Yvon
我建议你看看函数'csvread()'https://www.mathworks.com/help/matlab/ref/csvread.html。您可以选择要开始阅读的行,以及要提取的列。 – xrr