Replace elements of sparse matrix from a full matrix.

Dear Experts
I have a huge matrix, M with zeros. I am converting M into sparse using sparse(M). After, I want to replace few positions (idx) of M from other matrix, N. I am using the following: M(idx) = N(idx). But, this is very very slow. Also MATLAB warns: This sparse indexing expression is slow. How I can do the above task?
Thanks in advance.

2 件のコメント

Stephen23
Stephen23 2016 年 3 月 4 日
What size is M?
KSSV
KSSV 2016 年 3 月 4 日
[19647672 60] is the size at present am dealing with. It may be more in future.

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

回答 (1 件)

Jos (10584)
Jos (10584) 2016 年 3 月 4 日

0 投票

What don't you replace the elements before converting it?

8 件のコメント

KSSV
KSSV 2016 年 3 月 4 日
No...I want to replace in sparse matrix. Actually I am using svds for M. M is huge.
Jos (10584)
Jos (10584) 2016 年 3 月 4 日
I don't get it. You do start off with a full matrix M which you convert using sparse, don't you?
KSSV
KSSV 2016 年 3 月 5 日
Yes..I am starting with a full matrix which has lot of zero's. Then converting it to sparse for svds. And after I have to replace certain zeros of sparse with the result obtained from svds.
Walter Roberson
Walter Roberson 2016 年 3 月 5 日
If you know you are replacing zeros, then you can sparse() up the values that are going in as a second sparse matrix, and add that to the first sparse matrix.
KSSV
KSSV 2016 年 3 月 5 日
Hi Walter..happy to see you. Yes I tried it, but replacing the values is taking hell lot of time.
Walter Roberson
Walter Roberson 2016 年 3 月 5 日
When you create your original sparse matrix, be sure to allow extra nzmax; see http://www.mathworks.com/help/matlab/ref/spalloc.html
KSSV
KSSV 2016 年 3 月 5 日
Actually my original matrix has zeros and I want to fill these zeros with numbers later...
Walter Roberson
Walter Roberson 2016 年 3 月 5 日
Then spalloc() would be appropriate. If you create a matrix without using it or equivalent then you end up doing a lot of sparse reallocations as you add in new values.

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

カテゴリ

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

質問済み:

2016 年 3 月 4 日

コメント済み:

2016 年 3 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by