Sum over cell array of sparse matrices

2 ビュー (過去 30 日間)
Gobi
Gobi 2017 年 4 月 2 日
コメント済み: Gobi 2017 年 4 月 2 日
I have 100 sparse matrices of size N by N, where N=65536.
They have about 5500000 nonzero elements(0.13% of N^2) close to the diagonal.
They are stored in a cell array, S{1}, ... , S{100}, and I want to compute the sum S{1}+...+S{100}.
Sum=sparse(N,N);
for i=1:100
Sum=Sum+S{i};
end
The above for loop code took about 25 seconds. Is there any way to optimize this code?

回答 (1 件)

Stalin Samuel
Stalin Samuel 2017 年 4 月 2 日
v1=[S{1:100}];
Sum=sum(v1);
  1 件のコメント
Gobi
Gobi 2017 年 4 月 2 日
This code gives a 1 by N*100 vector. v1 is a matrix stacking S{:}, and just summing up is not what I want.

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

カテゴリ

Help Center および File ExchangeSparse Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by