Здравствуйте, я знаю, что есть много вопросов об умножении разреженных матриц, но во многих ответах говорится, что нужно просто использовать библиотеки. Я хочу сделать это без использования библиотечных функций. До сих пор я делал самую простую часть, приводя свои матрицы в форму
массива элементов
массива столбцов
массива строк.
Мне нужна помощь с логической частью. Если матрица A равна M*N, а матрица B равна N*P, как мне это сделать? Я решил перебрать элементы в матрице A и проверить, является ли это rowA == colB, и если да, то если colA == rowB, и если это правда, то умножить. В настоящее время я знаю, что моя версия неверна, но я не могу придумать, как исправить ее.
for(int i = 0; i < rows; i++)
{
sum = 0;
for(int k = 0; k < cols; k++)
if (row_values.get(i) == col_valuesb.get(k))
if (col_values.get(i) == row_valuesb.get(k))
{
sum += (short) (elements.get(i)*elementsb.get(k));
}
elementsc.add(sum);
row_valuesc.add(row_values.get(i));
col_valuesc.add(col_values.get(k));
}