私はスパース行列の使用に慣れていませんが、スペースを節約するために、スパース行列を使用する必要があります。私は次のマトリックスを理解しています:
10 0 0 0 -2 0
3 9 0 0 0 3
0 7 8 7 0 0
3 0 8 7 5 0
0 8 0 9 9 13
0 4 0 0 2 -1
次のような3つのベクトルで表すことができます。
[10 -2 3 9 3 7 8 7 3 8 7 5 8 9 9 13 3 2 -1] // nonzero_vals
[1 5 1 2 6 2 3 4 1 3 4 5 2 4 5 6 2 5 6] // col_indices
[1 3 6 9 13 17 20] // row_ptr (indices of values that start row)
私の問題は、O(1)時間での値ルックアップの適切な方程式を決定することです。たとえば、場所(2,2)に格納されている行列値を返したい場合、9を返すにはどうすればよいですか?また、ルックアップ座標がスパース行列で表されていない場合、O(1)時間でも、0を返すにはどうすればよいですか?
私はあなたが提供できるどんな助けにも感謝します。これには十分に確立された方程式があると確信していますが、それらを見つけることができません。