Я хочу умножить 5 матриц (все они не одного размера) в C++, так что я могу сделать? Мне нужно будет использовать цикл 5 раз или есть какой-нибудь простой метод, как в matlab? размеров матрицы первые: 1x4 вторые: 4x4 третьи: 4x4 четвёртые: 4x4 пятые: 4x1умножение 5 матрицы разного размера в C++
0
A
ответ
1
- Написать функцию, которая выполняет умножение матриц для матриц произвольного размера (с проверкой здравомыслия) ,
- Используйте функцию четыре раза, один раз для каждого умножения.
В качестве альтернативы, вы можете определить *
оператора для матрицы типа, который вы определили себя, так что вы могли бы просто написать a*b*c*d
2
Вы можете использовать boost linear algebra библиотеки, которая определяет как матричные и векторные тип и имеет умножение operator *
.
matrix<int> m1(1,4);
matrix<int> m2(4,4);
matrix<int> m3(4,4);
matrix<int> m4(4,1);
//... initialize your matrices here
matrix<int> result = m1*m2*m3*m4;
Вы можете создать класс матрицы и предоставить 'operator *'. – Zeta
Посмотрите, есть ли библиотека, доступная для представления матриц. Если вы делаете это для класса/забавы, вы должны начать с размышления о маленьком классе heiracrchy и, возможно, шаблонных параметрах, чтобы указать размер матрицы –
@ user1158692: Иерархия? какая иерархия? –