Eigen::MatrixXd ExperimentalTrajectory::kernelFunction(Eigen::VectorXd& evalVec) { int sizeVec = evalVec.rows(); int nC = kernelCenters.rows(); int nS = maxCovariance.rows(); Eigen::MatrixXd blockDiagonalResult = Eigen::MatrixXd::Zero((nS*sizeVec), (nS*nC)); for(int i=0; i<sizeVec; i++) { blockDiagonalResult.middleRows(i*nS, nS) = kernelFunction(evalVec(i)); } return blockDiagonalResult; }