mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-21 13:02:25 +08:00
Set Matrix's col amd row to single value (#113)
This commit is contained in:
@@ -407,12 +407,21 @@ public:
|
|||||||
slice<1,N>(i,0) = row_in.transpose();
|
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)
|
void setCol(size_t j, const Matrix<Type, M, 1> &column)
|
||||||
{
|
{
|
||||||
slice<M,1>(0,j) = column;
|
slice<M,1>(0,j) = column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setCol(size_t j, Type val)
|
||||||
|
{
|
||||||
|
slice<M,1>(0,j) = val;
|
||||||
|
}
|
||||||
|
|
||||||
void setZero()
|
void setZero()
|
||||||
{
|
{
|
||||||
memset(_data, 0, sizeof(_data));
|
memset(_data, 0, sizeof(_data));
|
||||||
|
|||||||
+2
-2
@@ -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;
|
Vector<Type,P<Q?P:Q> res;
|
||||||
for (size_t j = 0; j < (P<Q?P:Q); j++) {
|
for (size_t j = 0; j < (P<Q?P:Q); j++) {
|
||||||
res(j) = self(j,j);
|
res(j) = self(j,j);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class Vector;
|
|||||||
template <typename Type, size_t P, size_t Q, size_t M, size_t N>
|
template <typename Type, size_t P, size_t Q, size_t M, size_t N>
|
||||||
class Slice;
|
class Slice;
|
||||||
|
|
||||||
template<typename Type, size_t M>
|
template <typename Type, size_t M>
|
||||||
class SquareMatrix : public Matrix<Type, M, M>
|
class SquareMatrix : public Matrix<Type, M, M>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -72,6 +72,28 @@ int main()
|
|||||||
|
|
||||||
TEST(isEqual(m3, m2));
|
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] = {
|
||||||
|
{1, 11, 3},
|
||||||
|
{4, 11, 6},
|
||||||
|
{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] = {
|
float data_row_02_swap[9] = {
|
||||||
7, 8, 9,
|
7, 8, 9,
|
||||||
4, 5, 6,
|
4, 5, 6,
|
||||||
|
|||||||
Reference in New Issue
Block a user