| 179 | |
| 180 | template <class T> |
| 181 | Eigen::Matrix<T, Eigen::Dynamic, 1> makeColVector(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& matrix) { |
| 182 | std::size_t r = matrix.rows(); |
| 183 | std::size_t c = matrix.cols(); |
| 184 | Eigen::Matrix<T, Eigen::Dynamic, 1> vector; |
| 185 | if (r == 1 && c >= 1) { // Check passed, matrix can be transformed |
| 186 | vector = matrix.transpose().block(0, 0, c, r); |
| 187 | } else if (r >= 1 && c == 1) { // Check passed, matrix can be transformed |
| 188 | vector = matrix.block(0, 0, r, c); |
| 189 | } else { // Check failed, throw error |
| 190 | throw ValueError(format("Your matrix (%d,%d) cannot be converted into a vector (x,1).", r, c)); |
| 191 | } |
| 192 | return vector; |
| 193 | } |
| 194 | template <class T> |
| 195 | Eigen::Matrix<T, Eigen::Dynamic, 1> makeVector(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& matrix) { |
| 196 | return makeColVector(matrix); |