diff --git a/mex/sources/k_order_perturbation/dynamic_m.cc b/mex/sources/k_order_perturbation/dynamic_m.cc index 0116d7f83..e620c0c8d 100644 --- a/mex/sources/k_order_perturbation/dynamic_m.cc +++ b/mex/sources/k_order_perturbation/dynamic_m.cc @@ -125,11 +125,12 @@ DynamicModelMFile::eval(const Vector &y, const Vector &x, const Vector &modParam if (retVal != 0) throw DynareException(__FILE__, __LINE__, "Trouble calling " + funcname); - assert(static_cast(mxGetM(plhs[0])) == md[i-1].nrows()); - assert(static_cast(mxGetN(plhs[0])) == md[i-1].ncols()); - if (i == 1) - std::copy_n(mxGetPr(plhs[0]), mxGetM(plhs[0])*mxGetN(plhs[0]), md[i-1].base()); + { + assert(static_cast(mxGetM(plhs[0])) == md[i-1].nrows()); + assert(static_cast(mxGetN(plhs[0])) == md[i-1].ncols()); + std::copy_n(mxGetPr(plhs[0]), mxGetM(plhs[0])*mxGetN(plhs[0]), md[i-1].base()); + } else unpackSparseMatrixAndCopyIntoTwoDMatData(plhs[0], md[i-1]);