0
フォルダー内に次の形式のcsvファイルがたくさんあるので、それぞれから完全な時系列を抽出する(行番号17の数字部分)、重複レコードを識別する年月日に応じて昇順にマージします。 特定のcsvファイル今、私のコードは次のように働いているフォルダ内の複数のcsvファイルからtimeseriesを読み込む:
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
以下のGoogleドライブリンクを介してアクセス可能である:
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
今私は、ファイルを読むことができました。今私の問題は、複数のファイルのデータを1つの行列に結合し、年と日の値に従って昇順に並べる方法です。ありがとう!
データをcsvファイルにコピーしても問題はありません。おそらく元のファイルでは、これらの空白は必ずしも「空白」ではありません。ファイルをアップロードできますか? – Yvon
引数 'MultipleDelimsAsOne'を見れば助けになるかもしれません。とにかく私はあなたの問題を生み出すことはできません。 – Yvon
関数 'csvread()' https://www.mathworks.com/help/matlab/ref/csvread.htmlを調べることをお勧めします。読み込みを開始する行と、抽出する列を選択することができます。 – xrr