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
Fangjun Jiang 2011 年 8 月 19 日

0 投票

You don't have to modify j, just use
sp=sparse(i,round(j),s)
Walter Roberson
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 についてさらに検索

質問済み:

2011 年 8 月 19 日

Community Treasure Hunt

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

Start Hunting!

Translated by