В процессе работы ломается функция умножения матриц
Функция перемножения:
std::vector< std::vector<double> > mult_mat(std::vector< std::vector<double> > a, std::vector< std::vector<double> > b) {
std::vector< std::vector<double> > res(a.size(), std::vector<double>(b[0].size(), 0));
for (size_t i = 0; i < res.size(); ++i) {
for (size_t j = 0; j < res.size(); ++j) {
for (size_t q = 0; q < a[i].size(); ++q) {
if (a[i].size() != b.size()) exit(10);
res[i][j] += a[i][q] * b[q][j];
}
}
}
return res;
}
Вызываю следующим образом:
std::vector< std::vector<double> > res;
...
res = mult_mat(basis, {{x}, {y}, {z}});
С чем может быть связана эта проблема?
Ответы (1 шт):
Автор решения: reshu
→ Ссылка
У вас j от 0 до 2. При этом res и b оба 3*1.
Соответственно в Вашей строке
res[i][j] += a[i][q] * b[q][j];
ошибка что res[i][j], что b[q][j]