Я хотел выполнить умножение матриц в 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> я хочу извлечь каждое значение в другую переменную. Я не нашел никакой информации в документах.
Ценю, если кто-нибудь, пожалуйста, направит меня.
Спасибо





Вы должны использовать оператор ():
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
@ user3412649 Если мой ответ вам поможет, не забудьте отметить его как правильный, если вы не знаете, как это сделать, просмотрите тур, это лучший способ поблагодарить. :)
@ user3412649 К сожалению, оператор [] не реализован в QGenericMatrix, :)
QGenericMatrix предоставляет для этого оператор ()
Большое спасибо. Я пытался использовать qDebug () << result [0] [0].