@ -407,12 +407,21 @@ public:
slice<1,N>(i,0) = row_in.transpose();
}
void setRow(size_t i, Type val)
{
slice<1,N>(i,0) = val;
void setCol(size_t j, const Matrix<Type, M, 1> &column)
slice<M,1>(0,j) = column;
void setCol(size_t j, Type val)
slice<M,1>(0,j) = val;
void setZero()
memset(_data, 0, sizeof(_data));
@ -119,9 +119,9 @@ public:
Vector<Type, P<Q?P:Q> diag()
Vector<Type, P<Q?P:Q> diag() const
Slice<Type, P, Q, M, N>& self = *this;
const Slice<Type, P, Q, M, N>& self = *this;
Vector<Type,P<Q?P:Q> res;
for (size_t j = 0; j < (P<Q?P:Q); j++) {
res(j) = self(j,j);
@ -72,6 +72,28 @@ int main()
TEST(isEqual(m3, m2));
// set rows and columns to value
Matrix3f m2e(data2d);
float data2e_check1[3][3] = {
{1, 11, 3},
{4, 11, 6},
{7, 11, 9}
};
Matrix3f m2e_check1(data2e_check1);
float data2e_check2[3][3] = {
{0, 0, 0}
Matrix3f m2e_check2(data2e_check2);
m2e.setCol(1, 11);
TEST(isEqual(m2e, m2e_check1));
m2e.setRow(2, 0);
TEST(isEqual(m2e, m2e_check2));
float data_row_02_swap[9] = {
7, 8, 9,
4, 5, 6,