У меня есть класс с
double *matrix;
int _row;
int _col;
в цикле:
for (int i = 0; i < _row; i++) {
for (int j = 0; j < _col; j++) {
matrix[i * _col + j] = 0.0;
}
}
Мне нужно умножить две матрицы и получить новую:
Matrix MatrixOperations::Mul(const Matrix &m1, const Matrix &m2) {
if (m1.CheckMul(m2)) {
Matrix temp(m1._row, m2._col);
for (int i = 0; i < temp._row; i++) {
for (int j = 0; j < temp._col; j++) {
for (int k = 0; k <= temp._col; k++) {
temp.matrix[i * temp._col + j] += m1.matrix[i * temp._col + k] * m2.matrix[k * temp._col + j];
}
}
}
return temp;
}
}
Код указан неверно.Я думаю, что индексы неверны, но я не могу ни понять, ни увидеть, какие именно.
У кого-нибудь есть идеи?Спасибо.