Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dóra Kocsis
dynare
Commits
be57a4b0
Commit
be57a4b0
authored
Mar 08, 2013
by
Stéphane Adjemian
Browse files
Added merge method to dynSeries class.
parent
0ffccac6
Changes
1
Hide whitespace changes
Inline
Side-by-side
matlab/@dynSeries/merge.m
0 → 100644
View file @
be57a4b0
function
A
=
merge
(
B
,
C
)
%
@info
:
%!
@deftypefn
{
Function
File
}
{
@var
{
A
}
=
}
merge
(
@var
{
B
},
@var
{
C
})
%!
@anchor
{
@dynSeries
/
plus
}
%!
@sp
1
%!
Overloads
the
merge
method
for
the
Dynare
time
series
class
(
@ref
{
dynSeries
}).
%!
@sp
2
%!
@strong
{
Inputs
}
%!
@sp
1
%!
@table
@
@var
%!
@item
B
%!
Dynare
time
series
object
instantiated
by
@ref
{
dynSeries
}.
%!
@item
C
%!
Dynare
time
series
object
instantiated
by
@ref
{
dynSeries
}.
%!
@end
table
%!
@sp
1
%!
@strong
{
Outputs
}
%!
@sp
1
%!
@table
@
@var
%!
@item
A
%!
Dynare
time
series
object
.
%!
@end
deftypefn
%
@eod
:
%
Copyright
(
C
)
2011
,
2012
,
2013
Dynare
Team
%
%
This
file
is
part
of
Dynare
.
%
%
Dynare
is
free
software
:
you
can
redistribute
it
and
/
or
modify
%
it
under
the
terms
of
the
GNU
General
Public
License
as
published
by
%
the
Free
Software
Foundation
,
either
version
3
of
the
License
,
or
%
(
at
your
option
)
any
later
version
.
%
%
Dynare
is
distributed
in
the
hope
that
it
will
be
useful
,
%
but
WITHOUT
ANY
WARRANTY
;
without
even
the
implied
warranty
of
%
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
%
GNU
General
Public
License
for
more
details
.
%
%
You
should
have
received
a
copy
of
the
GNU
General
Public
License
%
along
with
Dynare
.
If
not
,
see
<
http
:
//www.gnu.org/licenses/>.
if
~
isequal
(
B
.
freq
,
C
.
freq
)
error
([
'
dynSeries
:
:
merge
:
Cannot
merge
'
inputname
(
1
)
'
and
'
inputname
(
2
)
'
(
frequencies
are
different
)
!
'
])
end
A
=
dynSeries
();
A
.
freq
=
B
.
freq
;
[
A
.
name
,
IA
,
IB
]
=
unique
([
B
.
name
;
C
.
name
],
'
last
'
);
A
.
vobs
=
length
(
A
.
name
);
if
B
.
init
>=
C
.
init
diff
=
B
.
init
-
C
.
init
;
A
.
nobs
=
max
(
B
.
nobs
+
diff
,
C
.
nobs
);
A
.
data
=
NaN
(
A
.
nobs
,
A
.
vobs
);
Z1
=
[
NaN
(
diff
,
B
.
vobs
)
;
B
.
data
];
if
A
.
nobs
>
B
.
nobs
+
diff
Z1
=
[
Z1
;
NaN
(
A
.
nobs
-
(
B
.
nobs
+
diff
),
B
.
vobs
)];
end
;
Z2
=
C
.
data
;
if
A
.
nobs
>
C
.
nobs
Z2
=
[
Z2
;
NaN
(
A
.
nobs
-
C
.
nobs
,
C
.
vobs
)];
end
;
Z
=
[
Z1
Z2
];
A
.
data
=
Z
(
:
,
IA
);
A
.
init
=
C
.
init
;
else
diff
=
C
.
init
-
B
.
init
;
A
.
nobs
=
max
(
C
.
nobs
+
diff
,
B
.
nobs
);
A
.
data
=
NaN
(
A
.
nobs
,
A
.
vobs
);
Z1
=
[
NaN
(
diff
,
C
.
vobs
)
;
C
.
data
];
if
A
.
nobs
>
C
.
nobs
+
diff
Z1
=
[
Z1
;
NaN
(
A
.
nobs
-
(
C
.
nobs
+
diff
),
C
.
vobs
)];
end
;
Z2
=
B
.
data
;
if
A
.
nobs
>
B
.
nobs
Z2
=
[
Z2
;
NaN
(
A
.
nobs
-
B
.
nobs
,
B
.
vobs
)];
end
;
Z
=
[
Z1
Z2
];
A
.
data
=
Z
(
:
,
IA
);
A
.
init
=
B
.
init
;
end
;
%
@test
:
1
%
$
%
Define
a
datasets
.
%
$
A
=
rand
(
10
,
2
);
B
=
randn
(
10
,
1
);
%
$
%
$
%
Define
names
%
$
A_name
=
{
'
A1
';'
A2
'
};
B_name
=
{
'
A1
'
};
%
$
%
$
t
=
zeros
(
4
,
1
);
%
$
%
$
%
Instantiate
a
time
series
object
.
%
$
try
%
$
ts1
=
dynSeries
(
A
,[],
A_name
,[]);
%
$
ts2
=
dynSeries
(
B
,[],
B_name
,[]);
%
$
ts3
=
merge
(
ts1
,
ts2
);
%
$
t
(
1
)
=
1
;
%
$
catch
%
$
t
=
0
;
%
$
end
%
$
%
$
if
length
(
t
)
>
1
%
$
t
(
2
)
=
dyn_assert
(
ts3
.
vobs
,
2
);
%
$
t
(
3
)
=
dyn_assert
(
ts3
.
nobs
,
10
);
%
$
t
(
4
)
=
dyn_assert
(
ts3
.
data
,[
B
,
A
(
:
,
2
)],
1e-15
);
%
$
end
%
$
T
=
all
(
t
);
%
@eof
:
1
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment