2
こんにちは私はスパース行列の乗算について多くの質問があることを知っていますが、答えの多くは単にライブラリを使用すると言います。私はライブラリ関数を使わずにそれをやりたいこれまでのところ、マトリックスを
要素配列
列配列
行配列の形にする簡単な部分を行っています。Javaでのスパース行列の乗算
私が助けが必要なのはロジック部分です。行列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));
}