sparse and non-integers
Show older comments
Hi all, I'm trying to create a sparse matrix using the sparse function: sp=sparse(i,j,s)
but the vector j that I'm using consists of double values. This leads to the error:
??? Error using ==> sparse Index into matrix must be an integer.
I don't want to round my j vector cause this would lead to a distortion of the results I need from my dataset.
Is there a way to overcome this problem and finally construct the sparse matrix i need using the original j vector?
Thanks in advance jaso
Answers (2)
Fangjun Jiang
on 19 Aug 2011
You don't have to modify j, just use
sp=sparse(i,round(j),s)
Walter Roberson
on 19 Aug 2011
0 votes
No, there is not. Matrices cannot be indexed at non-integral values.
What value would you want returned if they could be indexed at non-integral values? Should A(3.2) be (8/10 * A(3) + 2/10 * A(4)) for example?
You should perhaps be considering using something like ismember() to map your floating point values to arbitrary integers.
Categories
Find more on Sparse Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!