Sparse matrix memory problem

1 回表示 (過去 30 日間)
Pawel
Pawel 2012 年 4 月 5 日
I need to create really big sparse matrix, which will have very few non zero elements. I am trying to do this callling function:
A = sparse([1], [1000000000], 1);
But Matlab then allocates 7GB of memory! I think sparse matrices uses memory only for non zero elements, but it seems it allocates full matrix. Am I doing something wrong or this is Matlab bug? How can I bypass it?

採用された回答

Teja Muppirala
Teja Muppirala 2012 年 4 月 5 日
Sparse matrices keep track of data by each column. This means that if you have a lot of columns (here you have one billion of them...), then you will need lots of memory even though it is sparse. A workaround would be to make it a single column vector with 1e9 rows instead.
A = sparse(1000000000, 1, 1);

その他の回答 (1 件)

Pawel
Pawel 2012 年 4 月 5 日
I am wondering why is that. When you have sparse data like features extracted from web pages common case is: in rows you have samples and columns are sparse features. All statistics algorithms in Matlab makes such assumption. So with this implementation of sparse matrix all algorithms from statistics toolbox are useless for sparse data :/

カテゴリ

Help Center および File ExchangeSparse Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by