Error using sparse. Index exceeds matrix dimensions.

I am trying to run this piece of code to do more operations on the graph G. However, I get the error cited in the title.
A = load('file.txt', '-ascii');
i = A(:,1);
j = A(:,2);
num = 11355;
G = sparse(i,j,1,num,num);
I am not sure if this is because sparse cannot make matrices that are in the order of magnitude of the prescribed matrix or this is a memory issue. I am relatively new to Matlab, so I am not sure what to do with it.
Thanks in advance.

回答 (1 件)

Star Strider
Star Strider 2017 年 1 月 8 日

1 投票

I doubt if it’s a memory issue, since
G = sparse(num,num);
whos G
yields
Name Size Bytes Class Attributes
G 11355x11355 90864 double sparse
I would check to see if any elements of ‘i’ or ‘j’ are greater than ‘num’.

2 件のコメント

Lujaina Abuerban
Lujaina Abuerban 2017 年 1 月 8 日
I traversed both 'i' and 'j' looking for their greatest elements, they yield 11354 and 11355 respectively. So, no, there are no elements greater than 'num'.
Star Strider
Star Strider 2017 年 1 月 8 日
Oh, well.
You don’t have to scan them. Just use the max function.
A zero or a non-integer would throw a different error, so those aren’t the problem.

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

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2017 年 1 月 8 日

コメント済み:

2017 年 1 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by