2013-11-01 2 views
0

Я хочу умножить 5 матриц (все они не одного размера) в C++, так что я могу сделать? Мне нужно будет использовать цикл 5 раз или есть какой-нибудь простой метод, как в matlab? размеров матрицы первые: 1x4 вторые: 4x4 третьи: 4x4 четвёртые: 4x4 пятые: 4x1умножение 5 матрицы разного размера в C++

+1

Вы можете создать класс матрицы и предоставить 'operator *'. – Zeta

+0

Посмотрите, есть ли библиотека, доступная для представления матриц. Если вы делаете это для класса/забавы, вы должны начать с размышления о маленьком классе heiracrchy и, возможно, шаблонных параметрах, чтобы указать размер матрицы –

+0

@ user1158692: Иерархия? какая иерархия? –

ответ

1
  1. Написать функцию, которая выполняет умножение матриц для матриц произвольного размера (с проверкой здравомыслия) ,
  2. Используйте функцию четыре раза, один раз для каждого умножения.

В качестве альтернативы, вы можете определить * оператора для матрицы типа, который вы определили себя, так что вы могли бы просто написать 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;