こんにちは、疎行列の乗算について多くの質問があることは知っていますが、多くの回答は単にライブラリを使用すると言っています。ライブラリ関数を使わずにやりたい。これまでのところ、行列を
要素配列、
列配列、
行配列の形式にするという簡単な部分は完了しました。
私が助けを必要としているのは、ロジック部分です。行列 A が M*N で、行列 B が N*P の場合、どうすればいいですか? 行列 A の要素を繰り返し処理し、それが rowA== colB かどうかを確認し、そうであれば colA==rowB であり、それが true であれば乗算することを検討しました。現在、自分のバージョンが間違っていることはわかっていますが、正しくする方法が思いつきません。
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));
}