変数ベクトルは、次のような 31 個の変数を持つ多重線形関数を格納します。
>> tic; mlf=sparse(1,2^31)
toc
tic; mlf(1)=7
toc
mlf =
All zero sparse: 1-by-2147483648
Elapsed time is 1.075814 seconds.
mlf =
(1,1) 7
Elapsed time is 15.468432 seconds.
ここでは、定数、$x_1$、x_2x_31$、$x_30x_31$ など、多重線形関数で可能なすべての項が含まれています。しかし、この初期化と特に代入には非常に長い時間がかかります (ここでは ~1 秒と ~15 秒)。実際には、各 mlf には約 1 ~ 20 の用語しかないため、2147483648 に近づくことさえありません! 余分なゼロが多すぎるため、明らかに時間が大きすぎます。
スパース情報を格納するために大きな変数ベクトルを管理する方法は?