Which is faster, the sparse or spdiag function?

In each iteration of a for loop I'm creating a big (approximatlly 10k*10k) five diagonal sparse matrix. Does anybody knows which function work faster? The sparse or spdiags. Is there a faster way to it if I only update the values of an existing sparse matrix in each iteration?

2 件のコメント

Walter Roberson
Walter Roberson 2018 年 4 月 10 日
Be careful, updating an existing sparse matrix is slow if you are adding non-zero elements beyond what was allocated for the matrix with spalloc()
James Tursa
James Tursa 2018 年 4 月 10 日
Even if you are not exceeding the currently allocated memory for the matrix, it can be slow if the operation causes a large number of existing elements to be moved around in this memory.

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

回答 (1 件)

Walter Roberson
Walter Roberson 2018 年 4 月 10 日

0 投票

spdiags() invokes sparse() after packaging together the appropriate content and indices.

1 件のコメント

d
d 2018 年 4 月 11 日
So, it means that sparse() is better in terms of time consuming. Thanks.

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

カテゴリ

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

質問済み:

d
d
2018 年 4 月 10 日

コメント済み:

d
d
2018 年 4 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by