QGenericMatrix, как вернуть конкретное значение из строки / столбца - PullRequest
0 голосов
/ 07 июня 2018

Я хотел бы сделать умножение матриц в QT и могу инициализировать QGenericMatrix и умножить две матрицы тоже, но как мне извлечь значения из окончательной матрицы (конкретной строки / столбца) для дальнейших вычислений.

float values [] = {
1, 0.23, 0, -0.98,
0, 0.75, 0, -0.67,
0, 0.34, 1, 0.12,
0, 0.98, 0, 0.23
};

float values1 [] = {
34
23
12
11
};

QGenericMatrix<4,4, float> a(values);
QGenericMatrix<1,4, float> b(values1);

QGenericMatrix<1,4, float> result = a * b;
qDebug() << result;

Из матрицы результатов <1,4> я хочу извлечь каждое значение в другую переменную.Я не смог найти никакой информации в документах.

Ценю, если кто-нибудь, пожалуйста, ведите меня.

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

QGenericMatrix обеспечивает оператор () для этого

0 голосов
/ 07 июня 2018

Вы должны использовать оператор ():

float values [] = {
1, 0.23, 0, -0.98,
0, 0.75, 0, -0.67,
0, 0.34, 1, 0.12,
0, 0.98, 0, 0.23
};

float values1 [] = {34, 23, 12, 11};

QGenericMatrix<4,4, float> a(values);
QGenericMatrix<1,4, float> b(values1);

QGenericMatrix<1,4, float> result = a * b;

qDebug()<< result;

qDebug() << result(0, 0);
qDebug() << result(1, 0);
qDebug() << result(2, 0);
qDebug() << result(3, 0);

Выход:

QGenericMatrix<1, 4, float>(
     28.51         
      9.88         
     21.14         
     25.07         
)
28.51
9.88
21.14
25.07
...