mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-05-02 05:04:08 +08:00
Set Matrix's col amd row to single value (#113)
This commit is contained in:
parent
ef442fab92
commit
5cbcf6035a
@ -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);
|
||||
|
||||
@ -22,7 +22,7 @@ class Vector;
|
||||
template <typename Type, size_t P, size_t Q, size_t M, size_t N>
|
||||
class Slice;
|
||||
|
||||
template<typename Type, size_t M>
|
||||
template <typename Type, size_t M>
|
||||
class SquareMatrix : public Matrix<Type, M, M>
|
||||
{
|
||||
public:
|
||||
|
||||
@ -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] = {
|
||||
{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] = {
|
||||
7, 8, 9,
|
||||
4, 5, 6,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user