diff --git a/matlab/@dseries/mpower.m b/matlab/@dseries/mpower.m index 89b0b1049379c4da13f96c2c6b86b85d3d43d9cc..d144f3da668ecc59f2b242a24ac1b03987899d06 100644 --- a/matlab/@dseries/mpower.m +++ b/matlab/@dseries/mpower.m @@ -40,7 +40,25 @@ function A = mpower(B,C) % --*-- Unitary tests --*-- % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -if isdseries(B) && isnumeric(C) && isreal(C) && isscalar(C) +if isnumeric(B) && isvector(B) && length(B)>1 + if ~isdseries(C) + error('dseries::mpower: Second input argument must be a dseries object!') + end + A = C; + A.data = bsxfun(@power,C.data,B); + return; +end + +if isnumeric(C) && isvector(C) && length(C)>1 + if ~isdseries(B) + error('dseries::mpower: First input argument must be a dseries object!') + end + A = B; + A.data = bsxfun(@power,B.data,C); + return +end + +if isdseries(B) && isnumeric(C) && isreal(C) && isscalar(C) A = dseries(); A.freq = B.freq; A.init = B.init;