How to release zero elements in sparse matrix

Hi,
The Matlab document says sparse matrix does not release elements from memory when they are set to zero. Then how can I release the elements if they are zero?
For example:
>> a=sparse(ones(10,10));
>> nzmax(a)
ans =
100
>> a(1:5,1:5)=0;
>> nzmax(a)
ans =
100
>>
What I want is that nzmax(a) reports 75 since I don't want to waste the memory for 25 zeros. Is there any command I can use?
Thanks in advance!
Edit: Made the description of example clear.

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 7 日

0 投票

Your example is not correct, what you should do is
a=ones(10,10);
nzmax(a)
a(1:5,1:5)=0
a=sparse(a)
nzmax(a)

その他の回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2013 年 2 月 7 日

0 投票

nnz(a);

1 件のコメント

Jimmy
Jimmy 2013 年 2 月 7 日
Hi Andrei,
Sorry I mean I want to really release the memory and that nzmax() reports 75. But thanks for the quick reply.
Jimmy

サインインしてコメントする。

Walter Roberson
Walter Roberson 2013 年 2 月 7 日

0 投票

The examples of sparse show how to dissect and reconstruct a sparse matrix

カテゴリ

ヘルプ センター および File Exchange で Sparse Matrices についてさらに検索

製品

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by