查看单个帖子
旧 2019-11-23, 20:05   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Optimal way of doing iterative assembly of sparse matrices in Matlab?

My code needs to in a loop modify the elements of a sparse matrix. Doing this matlab warns me that This sparse indexing expression is likely to be slow. I am preallocating the sparse arrays using the Spalloc function but am still getting this warning. What is the optimal approach for assembling of sparse matrices? This is what I am currently doing.

K=spalloc(n,n,100); f=spalloc(n,1,100);for i = 1:Nel [Ke,fe] = myFunction(Ex(i),Ey(i)); inds = data(i,2:end); K(inds,inds) = K(inds,inds) + Ke; f(inds) = f(inds)+fe; endthe indices in inds may be appear several times in the loop, meaning an element in K or f may receive multiple contributions. The last two lines within the loop are where I'm getting warnings.



更多...
poster 当前离线   回复时引用此帖