QGenericMatrix<N, M, T>, как засунуть переменные размера матрицы в конструктор |
Здравствуйте, гость ( Вход | Регистрация )
QGenericMatrix<N, M, T>, как засунуть переменные размера матрицы в конструктор |
zalivaha |
1.5.2010, 11:16
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 3.10.2009 Пользователь №: 1134 Спасибо сказали: 0 раз(а) Репутация: 0 |
Уважаемые Спецы! Подскажите как работать с классом QGenericMatrix.
Размер матрицы не определен, может быть любым, а конструктор требует размер, как обойти??? Нужна матрица ну к примеру 3*N, N от 3 до 100. Но шаблон не позволяет вставлять переменную. |
|
|
DEADHUNT |
1.5.2010, 11:18
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
boost::uBlas можно использовать, там есть матрицы произвольного размера.
|
|
|
zalivaha |
1.5.2010, 11:31
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 3.10.2009 Пользователь №: 1134 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть вот такие
typedef QGenericMatrix<2, 2, qreal> QMatrix2x2; typedef QGenericMatrix<2, 3, qreal> QMatrix2x3; typedef QGenericMatrix<2, 4, qreal> QMatrix2x4; typedef QGenericMatrix<3, 2, qreal> QMatrix3x2; typedef QGenericMatrix<3, 3, qreal> QMatrix3x3; typedef QGenericMatrix<3, 4, qreal> QMatrix3x4; typedef QGenericMatrix<4, 2, qreal> QMatrix4x2; typedef QGenericMatrix<4, 3, qreal> QMatrix4x3; А при записи вот такого кода: QGenericMatrix <vector.size(), 3, qreal> Matrix_A; Ошибка: error: 'vector' was not declared in this scope error: a function call cannot appear in a constant-expression. Размер vector может быть любым. как быть? |
|
|
zalivaha |
2.5.2010, 13:28
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 3.10.2009 Пользователь №: 1134 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот тут вот набросал примерчик для работы с матрицами на основе MathLibrary0.1.
Он компилиться в VS, но ни как не хочет компилиться в creatore. Может кто сможет подправить, матрицы B+C складывает, а A = B + C ругается. |
|
|
zalivaha |
2.5.2010, 14:04
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 3.10.2009 Пользователь №: 1134 Спасибо сказали: 0 раз(а) Репутация: 0 |
спасибо kibsoft!!!
Вот рабочий пример на основе MathLibrary0.1, если кому нужно работать с матрицами.
Прикрепленные файлы
|
|
|
DEADHUNT |
2.5.2010, 15:29
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
зачем только надо было изобретать какой-то MatrixLibrary, если можно было использовать boost.
чем такое не устроило? Сообщение отредактировал DEADHUNT - 2.5.2010, 15:29 |
|
|
zalivaha |
2.5.2010, 18:13
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 3.10.2009 Пользователь №: 1134 Спасибо сказали: 0 раз(а) Репутация: 0 |
Уважаемый DEADHUNT, неустроило тем что просто не знал про boost.
Отлично что можно даже выбирать инструменты. И сразу вопрос? А он обращение матриц делает? |
|
|
DEADHUNT |
2.5.2010, 19:56
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
LU факторизация, решение СЛАУ есть. но всё таки библиотека называется Basic Linear Algebra. подробнее здесь можно почитать http://www.boost.org/doc/libs/1_42_0/libs/...s/doc/index.htm
также есть более мощная библиотека основанная на boost::uBlas - LAPACK |
|
|
Текстовая версия | Сейчас: 30.12.2024, 20:19 |