From cada0494e7b5cf8553922eded59fd2b506caa5c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?=
 <stephane.adjemian@univ-lemans.fr>
Date: Sun, 8 Jun 2014 16:00:24 +0200
Subject: [PATCH] Fixes issue #652.

---
 matlab/@dseries/mpower.m | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/matlab/@dseries/mpower.m b/matlab/@dseries/mpower.m
index 89b0b10493..d144f3da66 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;
-- 
GitLab