From: "Anthony Hopf" <>
Newsgroups: comp.soft-sys.matlab
Subject: Index matrix to sparse matrix... saving memory
Date: Sat, 29 May 2010 16:30:23 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 18
Message-ID: <htrfev$fo7$>
Reply-To: "Anthony Hopf" <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1275150623 16135 (29 May 2010 16:30:23 GMT)
NNTP-Posting-Date: Sat, 29 May 2010 16:30:23 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1899184
Xref: comp.soft-sys.matlab:640484

Latest problem....

I have a matrix NxM that is N indexing vectors.  Some of these vectors have very few index values, but they all have to be M long (the largest number of index values) so they are filled with zeros.  Turns out I only utilize about 3% of the matrix to valid index values so I thought it would be a "good" idea to take advantage of sparse matrices to save a ton of memory, the MxN matrix can be over a gig.

S = [1 2 3 0 0 0 0 0 0
       4 5 6 0 0 0 0 0 0
       7 8 9 10 11 12 13 14 0
       15 16 17 18 19 20 21 22 23]

I would access each vector by S(1,:) and would have to cull out the 0's... but it would be great to just get the nonzeros!!

S_s = sparse(S);%<-- Much less memory (in the above case there isn't much savings)

Is there any way address S_s row wise to grab out the vectors I need without turning it back into a full matrix?

I am trying to figure out if I can use Bruno Luong's Sparse Sub Access, but I don't have su access to the server I am using to test it out...

Thanks in advance