From e01cabc9fe2880bb79dcbc03102f96e00085fb33 Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Fri, 7 Apr 2017 12:43:21 +0200 Subject: [PATCH] =?UTF-8?q?fix=20bug=20when=20concatenating=20series=20tha?= =?UTF-8?q?t=20don=E2=80=99t=20overlap.=20closes=20#17=20(cherry=20picked?= =?UTF-8?q?=20from=20commit=20cd4bfdcf296033c3263a3346491cfd478a508a52)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 8c2ef8fbc195bbda7d4005a52b1a279f9d9744c2) --- src/@dseries/horzcat.m | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/@dseries/horzcat.m b/src/@dseries/horzcat.m index 5722922..7870be4 100644 --- a/src/@dseries/horzcat.m +++ b/src/@dseries/horzcat.m @@ -97,8 +97,23 @@ function a = concatenate(b,c) elseif b_last_date>c_last_date c.data = [c.data; NaN(b_last_date-c_last_date, vobs(c))]; end + + fillerdates = dates(); + if max(c.dates) < min(b.dates) + fillerdates = max(c.dates):min(b.dates); + end + if max(b.dates) < min(c.dates) + fillerdates = max(b.dates):min(c.dates); + end + + if isempty(fillerdates) + hd = [b.dates, c.dates]; + else + hd = [b.dates, fillerdates, c.dates]; + end + a.data = [b.data, c.data]; - a.dates = sort(unique([b.dates, c.dates])); + a.dates = sort(unique(hd)); end %@test:1 -- GitLab