Commit 4d29deb3da1f349213c061fe320acbbd7cad46f1
1 parent
3b6db8cd
Helper function to remove item from square matrix
Showing
1 changed file
with
19 additions
and
0 deletions
openbr/core/eigenutils.cpp
| ... | ... | @@ -76,3 +76,22 @@ float eigStd(const Eigen::MatrixXf& x) { |
| 76 | 76 | float mean = eigMean(x); |
| 77 | 77 | return sqrt((x.array() - mean).pow(2).sum() / (x.cols() * x.rows())); |
| 78 | 78 | } |
| 79 | + | |
| 80 | +MatrixXf removeRowCol(MatrixXf X, int row, int col) { | |
| 81 | + MatrixXf Y(X.rows() - 1,X.cols() - 1); | |
| 82 | + | |
| 83 | + for (int i1 = 0, i2 = 0; i1 < X.rows(); i1++) { | |
| 84 | + if (i1 == row) | |
| 85 | + continue; | |
| 86 | + i2++; | |
| 87 | + | |
| 88 | + for (int j1 = 0, j2 = 0; j1 < X.cols(); j1++) { | |
| 89 | + if (j1 == col) | |
| 90 | + continue; | |
| 91 | + j2++; | |
| 92 | + | |
| 93 | + Y(i2,j2) = X(i1,j1); | |
| 94 | + } | |
| 95 | + } | |
| 96 | + return Y; | |
| 97 | +} | ... | ... |