sparse and non-integers
显示 更早的评论
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
回答(2 个)
Fangjun Jiang
2011-8-19
You don't have to modify j, just use
sp=sparse(i,round(j),s)
Walter Roberson
2011-8-19
0 个投票
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Sparse Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!